2012-02-03 7 views
0

次の問題があります。UITabBarControllerでログイン/ログアウトしますか?

気圧は、私は、ユーザーが次のコードでtabbarcontrollerに送信されtabbarcontroller.After検証にユーザーを送信しLoginViewあります。この後

-(void)userSuccessfullyLoggedIn{ 

     [self.window setRootViewController:myTabBarController]; 
     [myTabBarController setSelectedIndex:0]; 
     [self.window makeKeyAndVisible]; 
} 

を、ユーザーが正常に最初のビューに送信されますタブバーに表示されます。

タブバーの5番目の項目は、タブバーコントローラからLoginViewに戻ってユーザーを「ログアウト」するための空のビューを保持します。

-(void)userLogsOut{ 

     [self.window setRootViewController:myLoginViewController] 
     [self.window makeKeyAndVisible]; 
} 

そして今は、問題を記述するために、次のよう

// The following code intercepts the popup that confirms the "log out" dialog. 

-(void)alertView:(UIAlertView *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex{ 
     // index 0 is the YesButton that is supposed to "log out" the user. 
     if (buttonIndex == 0) 
     { 
      myAppDelegate *appDelegate = [[UIApplication sharedApplication] delegate]; 

      [appDelegate userLogsOut]; 


     } 
     else{ 

       NSLog(@"The user chose not to logout. Passing the user to the first tab"); 

       [[self myTabBarController] setSelectedIndex:0]; 

      }  
} 

[デリゲートuserLogsOut]コードです。

ユーザーが再びログインし、最初のビューを保持する最初のタブに着いた場合を除いて、空のlogoutViewからのポップアップダイアログはどこにも表示されません。

最初のビューはバックグラウンドで表示され、ログアウトしないように選択した場合はダイアログが消え、この時点でYESを選択するとユーザーは再びログアウトします。

お読みいただきありがとうございました。ヒントや指針を高く評価します。前もって感謝します。

+0

私は同様の問題 - ログインとタブバーコントローラを実装しようとしています。ログイン時にmyTabBarControllerをどこで定義しますか?私はストーリーボードを使用しています。ありがとう! – Dejell

+0

'UITabBarController'は' UIApplicationDelegate'の中で定義されています。これはストーリーボードなしで作られました。 – doge

答えて

2

申し訳ありませんが、今度は初めて[myTabBarController setSelectedIndex:0];で最初のタブを選択する前に、[self.window setRootViewController:myTabBarController];が呼び出されたときに2回目のログイン時にログアウトタブ(5番目のタブ)がアクティブになると思います。

-(void)userSuccessfullyLoggedIn{ 

    [myTabBarController setSelectedIndex:0]; 
    [self.window setRootViewController:myTabBarController]; 
    [self.window makeKeyAndVisible]; 
} 
+0

私の心を打つことはありません.......ありがとうございました。 – doge

関連する問題