Войти / Выйти с UITabBarController? - PullRequest
0 голосов
/ 03 февраля 2012

У меня проблемы со следующим.

Atm У меня есть LoginView, который отправляет пользователя на tabbarcontroller. После проверки пользователь отправляется на tabbarcontroller со следующим кодом:

-(void)userSuccessfullyLoggedIn{

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

После этого пользователь успешно отправляется на первое представление на панели вкладок.

5-й элемент на панели вкладок содержит пустое представление для «выхода» пользователя из контроллера табуляции обратно в LoginView.

// 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] выглядит следующим образом:

-(void)userLogsOut{

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

А теперь , чтобы описать проблему.

Это работает так, как я хочу, за исключением того, что когда пользователь снова входит в систему и должен приземлиться на первой вкладке с первым видом, всплывающее диалоговое окно из пустого окна выхода из системы просто появляется из ниоткуда.

Первый вид виден на заднем плане, и если выбрано НЕ для выхода из системы, диалоговое окно исчезает, если в этот момент пользователь выбирает ДА, он снова выходит из системы.

Спасибо за чтение, и любые советы и / или указатели будут высоко оценены. Заранее спасибо.

1 Ответ

2 голосов
/ 03 февраля 2012

Извините, я не могу проверить это сейчас, но я думаю, что когда вы входите во второй раз, вкладка Выход из системы (пятая вкладка) все еще активна при вызове [self.window setRootViewController:myTabBarController]; до того, как вы выбрали первую вкладку с [myTabBarController setSelectedIndex:0];. Вы можете попробовать переключить первую и вторую строки в - (void)userSuccessfullyLoggedIn как:

-(void)userSuccessfullyLoggedIn{

    [myTabBarController setSelectedIndex:0];
    [self.window setRootViewController:myTabBarController];
    [self.window makeKeyAndVisible];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...