2012-07-27 226 views
0

當應用程序啓動時,我已經在驗證字段後將視圖控制器(登錄)重定向到標籤欄控制器。問題是我必須放置註銷按鈕,當單擊註銷按鈕時,它應該轉到根視圖控制器(登錄頁面)。我試圖從標籤欄控制器推送到根視圖控制器,它被推動,但仍然面臨少數標籤欄問題,同時繼續進行。我如何從標籤欄項目彈出/推送到根視圖控制器?從標籤欄控制器註銷到根視圖控制器

+0

檢查此[鏈接](http://stackoverflow.com/questions/2716755/showing-login-view-controller-before-主標籤欄控制器?rq = 1) 並添加didLogoutFinished:方法 – 2012-07-27 14:41:08

+0

您是否找到答案 – 2015-05-12 18:12:20

回答

2

我想你的AppDelegate.m中,你已經創建了一個導航控制器的LoginUIViewController作爲RootViewController。

你可以解決這樣的問題:

例如,你有一個FirstTabUIViewControllerTabBarController,你想要去從FirstTabUIViewController回你LoginUIViewController(你RootViewController的)。

  1. 創建於FirstTabUIViewController.h您TabBarController參考,.M

    @property(強,非原子)IBOutlet中的UITabBarController * tabBarController;

    @synthesize tabBarController = _tabBarController;在.M

  2. 創建方法處理 「註銷」 按鈕點擊

    - (IBAction爲)logoutBtnTapped:(的UIBarButtonItem *)發件人{

    [self.tabBarController.navigationController popToRootViewControllerAnimated:YES];

    }

那是!希望有所幫助:)

0

當您單擊註銷按鈕時,您只需要將登錄屏幕再次放置在appdelegate窗口中。

LoginViewController *loginVC = [[LoginViewController alloc]init]; 
AppDelegate *appDelegate = [UIApplication sharedApplication].delegate; 
[appDelegate.window setRootViewController:loginVC];// This will initiate the login screen again 
0

這工作正常,我在同樣的情況下,

ChooseStateViewController *loginVC = [[ChooseStateViewController alloc]initWithNibName:@"ChooseStateViewController" bundle:nil]; 

UINavigationController *nc = [[UINavigationController alloc] initWithRootViewController:loginVC]; 
[nc.navigationBar setTintColor:[UIColor blackColor]]; 
AppDelegate *appDelegate = (AppDelegate*)[UIApplication sharedApplication].delegate; 
[appDelegate.window setRootViewController:nc]; 
相關問題