2017-07-26 14 views
0

iOS(ObjC)でUIWebViewを使用しているWebViewアプリで作業しています。このアプリケーションには、classNameを使用して解析されるように作成されたログイン機能があります。ログイン後にUIWebViewにユーザー名が表示されない

ログによると、アプリはユーザー名を取得していますが、読み込まれていないので、とハックしています。のメッセージです。私はNSUserDefaultsを使ってログインしたユーザーをログに記録しています。メニューが再ロードされていないため、「ようこそUSERNAME」が表示されます。

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    WIDTH = [UIScreen mainScreen].applicationFrame.size.width; 

    logoutURL = @"http://XXXXdomain.com/index.php?a=logout&type=app"; 

    preferences = [[NSUserDefaults alloc] init]; 
    NSString *savedSessionId = [preferences objectForKey:@"sessionId"]; 
    islogedin = [preferences objectForKey:@"islogedin"]; 
    userName = @""; 
    if([preferences objectForKey:@"userName"]){ 
     userName = [preferences objectForKey:@"userName"]; 
    } 
    if([islogedin isEqualToString:@"true"]){ 
     NSLog(@"arrNavigation=======%@---------%ld", arrNavigation, (long)openSection); 
     [self reloadMenu]; 
     [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(setName:) name:@"name" object:nil]; 
     [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reloadMenu) name:@"reloadMenu" object:nil]; 
    } else { 
     NSLog(@"arrNavigation=======%@---------%ld", arrNavigation, (long)openSection); 
     [self reloadMenu]; 
     [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(setLogout:) name:UIApplicationDidBecomeActiveNotification object:nil]; 

     [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reloadMenu) name:@"reloadMenu" object:nil]; 
    } 
} 

-(void)setName:(NSNotification *)notification{ 
    NSLog(@"logged in & received--------"); 
    NSString *name = [notification object]; 
    NSString *msg = [NSString stringWithFormat:@"Welcome %@", name]; 
    [signinBtn setTitle:msg forState:UIControlStateNormal]; 
    logoutBtn.hidden = NO; 
    islogedin = @"true"; 
} 

-(void)setLogout:(NSNotification *)notification{ 
    NSLog(@"loggedout--------"); 
    //NSString *name = [notification object]; 
    NSString *msg = [NSString stringWithFormat:@"Hello, Sign In"]; 
    [signinBtn setTitle:msg forState:UIControlStateNormal]; 
    logoutBtn.hidden = YES; 
    islogedin = @"false"; 
} 

答えて

0

明らかにコードが別の活動に関連して、ログインセッションのループを定義する必要が以下のように

コード。

あなたのコードは、この問題を解決するため

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    WIDTH = [UIScreen mainScreen].applicationFrame.size.width; 

    logoutURL = @"http://XXXXdomain.com/index.php?a=logout&type=app"; 

    preferences = [[NSUserDefaults alloc] init]; 
    //NSString *savedSessionId = [preferences objectForKey:@"sessionId"]; 
    islogedin = [preferences objectForKey:@"islogedin"]; 
    userName = @""; 
    if([preferences objectForKey:@"userName"]){ 
     userName = [preferences objectForKey:@"userName"]; 
    } 
    if([islogedin isEqualToString:@"true"]){ 
     NSString *msg = [NSString stringWithFormat:@"Welcome %@", userName]; 
     [signinBtn setTitle:msg forState:UIControlStateNormal]; 
     logoutBtn.hidden = NO; 
    } 
    else{ 
     [signinBtn setTitle:@"Hello, Sign In" forState:UIControlStateNormal]; 
     logoutBtn.hidden = YES; 
    } 

    // Do any additional setup after loading the view. 

    NSLog(@"arrNavigation=======%@---------%ld", arrNavigation, (long)openSection); 
    [self reloadMenu]; 
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(setName:) name:@"name" object:nil]; 

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reloadMenu) name:@"reloadMenu" object:nil]; 

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(setLogout:) name:@"logout" object:nil]; 

} 

-(void)setName:(NSNotification *)notification{ 
    NSLog(@"logged in & received--------"); 
    NSString *name = [notification object]; 
    NSString *msg = [NSString stringWithFormat:@"Welcome %@", name]; 
    [signinBtn setTitle:msg forState:UIControlStateNormal]; 
    logoutBtn.hidden = NO; 
    islogedin = @"true"; 
} 

-(void)setLogout:(NSNotification *)notification{ 
    NSLog(@"loggedout--------"); 
    //NSString *name = [notification object]; 
    NSString *msg = [NSString stringWithFormat:@"Hello, Sign In"]; 
    [signinBtn setTitle:msg forState:UIControlStateNormal]; 
    logoutBtn.hidden = YES; 
    islogedin = @"false"; 
} 

希望をソートします。

関連する問題