2010-06-04 2 views
0

앱이로드 될 때 로그인/가입보기를 모달로드하는 Tabbar/Tableview App이 있습니다. 설정 묶음에 Root.plist를 설정했습니다. 이름과 암호를 입력하고 항목을 성공적으로 검색했습니다.NSUserDefaults에 이름과 암호가 있는지 확인하여 로그인/화면 건너 뛰기

1) NSUserDefault 문자열이 비어 있는지 확인하고, 그렇다면 로그인/가입보기를로드하십시오.

2) 문자열을 사용할 수 있으면 문자열 내용을 사용하여 내 웹 서비스에 로그인하십시오.

미리 감사드립니다.

여기 내 LoginViewController의하는 .m이다

@synthesize usernameField; 
@synthesize passwordField; 
@synthesize loginButton; 
@synthesize loginIndicator; 
@synthesize usernameLabel; 
@synthesize passwordLabel; 





-(void)refreshFields { 
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
    usernameLabel.text = [defaults objectForKey:kUsernameKey]; 
    passwordLabel.text = [defaults objectForKey:kPasswordKey]; 

} 
- (void)viewDidAppear:(BOOL)animated { 
    [self refreshFields]; 
    [super viewDidAppear:animated]; 
} 
- (void)viewDidLoad { 
    [super viewDidLoad]; 
    [self refreshFields]; 

[self.navigationController setNavigationBarHidden:YES animated:NO]; 
} 



- (IBAction) login: (id) sender 
{ 

    { 

NSString *post =[NSString stringWithFormat:@"username=%@&password=%@",usernameField.text, passwordField.text];  


    NSString *hostStr = @"http:~iphone_login.php?"; 
    hostStr = [hostStr stringByAppendingString:post]; 
    NSData *dataURL = [NSData dataWithContentsOfURL: [ NSURL URLWithString: hostStr ]];  
    NSString *serverOutput = [[NSString alloc] initWithData:dataURL encoding: NSASCIIStringEncoding]; 

NSLog(@"Site: %@",hostStr); 
NSLog(@"Site: %@",serverOutput);  



if([serverOutput isEqualToString:@"Yes"]){ 


    UIAlertView *alertsuccess = [[UIAlertView alloc] initWithTitle:@"Congrats" message:@"You are authorized " 
                   delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil]; 

     [alertsuccess show]; 
     [alertsuccess release]; 

답변

0

내가 직접 label.text에 사용자 이름과 암호를 저장하지 것입니다, 그러나 이것은 당신의 프로그램입니다. 빈 확인을 위해이 시도 :

if ([usernameLabel.text length] == 0 || [passwordLabel.text length] == 0) 
    [self loadLoginView]; 
else 
    [self login:nil]; 

은 또한 당신은 stringForKey을 시도 할 수 : 대신 objectForKey의 kUsernameKey을. 마지막으로 NSUserDefaults에 저장하기 전에 사용자 이름과 비밀번호가 공백이 아닌지 확인해야합니다.

+0

테스트가 작동하지만 명령에 대해 확실하지 않습니다. [self loadLoginView]가 LoginView.xib를로드합니까? 내가보기를 계속로드 찾고 있어요. [자체 로그인] - (IBAction) 로그인을 실행합니까 : (id 보낸 사람? "ViewController가 응답하지 않을 수 있습니다"라는 오류 메시지가 나타납니다.) –

+0

[self login : nil]이어야합니다. 죄송합니다. [자체 loadLoginView] 귀하의 LoginView.xib 파일을로드해야합니다 자신의 함수에 대한 더미 자리 표시 자입니다. 일반적으로 LoginView.m 및 LoginView.h 파일을 함께 제공되므로 "그냥"xib 파일을로드하는 데 충분하지 않습니다. – JOM

+0

감사합니다,이 모든 것이 내 LoginView.m 클래스에 있었고, LoginView 컨트롤러는 AppDelegate.m 파일에서 모달로 시작되었습니다.이게 어디로 가야할지 알고 있습니까? –