2012-02-03 4 views
0

다음과 같은 문제가 있습니다.UITabBarController로 로그인/로그 아웃 하시겠습니까?

기압 나 사용자가 다음 코드로 tabbarcontroller 전송되는 tabbarcontroller.After 확인을 사용자에게 전송하는 LoginView있다 : 그 후

-(void)userSuccessfullyLoggedIn{ 

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

를, 사용자는 성공적으로 제보기로 전송 tabbar에.

탭 표시 줄의 다섯 번째 항목은 사용자를 tabbarcontroller에서 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];).

-(void)userSuccessfullyLoggedIn{ 

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

결코 내 마음을 때리지 못했습니다 ....... 감사합니다. – doge

관련 문제