2014-08-27 2 views
0

AppDelegateпереход обратно в LoginScreen когда выход из системы выбран

window = new UIWindow (UIScreen.MainScreen.Bounds); 
    navigationController = new UINavigationController(); 
    navigationController.SetNavigationBarHidden (true, true); 

    loginViewController = new LoginViewController(); 
    navigationController.AddChildViewController (loginViewController); 

    if (validToken == true){ 
     Menu = new SlideoutNavigationController(); 
     Menu.MainViewController = new MainNavigationController(new DashBoardViewController(), Menu){ NavigationBarHidden = true }; 
     Menu.MenuViewController = new MenuNavigationController(new SettingViewController(), Menu) { NavigationBarHidden = true }; 
     navigationController.AddChildViewController (Menu); 
    } 

    window.RootViewController = navigationController; 
    window.MakeKeyAndVisible(); 
    return true; 

Первоначальный запуск приложения его проверки на localToken, если маркер существует возвращает истину еще ложь. , если false loginViewController загрузится при первоначальном запуске приложения. После указания имени пользователя и пароля для успешной аутентификации
введите код ниже.

Menu = new SlideoutNavigationController(); 
Menu.MainViewController = new MainNavigationController(new DashBoardViewController(), Menu){ NavigationBarHidden = true }; 
Menu.MenuViewController = new MenuNavigationController(new SettingViewController(), Menu) { NavigationBarHidden = true }; 
NavigationController.PushViewController (Menu, true); 

В DashBoardViewController есть LogoutButton. // Необходимо перенаправить на loginController Screen.

btn_Logout.TouchUpInside += (sender, e) => { 

    Console.WriteLine ("Back Pressed"); 
    this.NavigationController.PopViewControllerAnimated(true); 
// this.NavigationController.PopToRootViewController (true); 
// this.NavigationController.PopToViewController (this,true); 
}; 

Его пребывание в том же видеКонтроллер, который является DashBoardViewController. Хотите вернуться к loginviewcontroller при нажатии кнопки выхода из системы.

@ Все заранее спасибо

ответ

2

На самом деле вы пытаетесь вернуться обратно в NavigationController, который не имеет LoginViewController в стопке viewControllers. Так вы AppDelegate добавить следующий код

public void GoToLoginScreen() 
{ 
    navigationController.PopToRootViewController(true); 
} 

и в btn_Logout.TouchUpInside случае

btn_Logout.TouchUpInside += (sender, e) => 
{ 
    Console.WriteLine ("Back Pressed"); 
    (UIApplication.SharedApplication.Delegate as AppDelegate).GoToLoginScreen(); 
}; 
+0

спасибо большое! он работал ... Небольшая коррекция в этом navigationController.PopToRootViewController (true); – kiran

Смежные вопросы