2012-03-08 65 views
0

我有一個基於標籤欄的項目創建,並添加一個登錄視圖之前的標籤視圖像這樣。ios刪除按鈕觸摸上的標籤欄

AppDelgate.m

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {  

    loginView = [[LoginViewController alloc] initWithNibName:@"LoginViewController" bundle:nil]; 
    loginView.delegate = self; 

    [window addSubview:loginView.view]; 

    [self.window makeKeyAndVisible]; 

    return YES; 
} 

-(void) loginViewControllerDidFinish:(LoginViewController *) loginViewController{ 
    [window addSubview:tabBarController.view]; 
} 

我打電話loginViewControllerDidFinish:在LoginViewController身份驗證

[self.delegate loginViewControllerDidFinish:self]; 

現在,在其中一個選項卡後,我已經添加註銷按鈕想來回到loginView觸摸。

-(IBAction) logout:(id)sender{ 
    NMSAppDelegate *appDelegate = (NMSAppDelegate *)[[UIApplication sharedApplication] delegate]; 

    //[appDelegate.tabBarController release]; 
    [appDelegate.tabBarController.view removeFromSuperview]; 
} 

它顯示調用上述方法後,但經過一個LoginView重新登錄它顯示了所有以前的數據和先前選擇的選項卡,但我希望它從第一tab.Is是重新反正有完全刪除tabout在登出。所以我開始新的會議。

謝謝

回答

0

無法創建appDelegate.tabBarController的另一個實例嗎?

事情是這樣的:

appDelegate.tabBarController = [[UITabBarController alloc] init]; 
appDelegate.tabBarController.viewControllers = [NSArray arrayWithObject:VIEW_CONTROLLER1, VIEW_CONTROLLER2,nil]; 

appDelegate.window.rootViewController = tabBarController; 
[appDelegate.window makeKeyAndVisible]; 
+0

你想讓我加入這loginViewControllerDidFinish:方法或在哪裏?還有哪些視圖控制器被添加到NSArray? – TechnocraT 2012-03-09 12:26:36

+0

如果您以後不使用removeFromSuperview刪除相同的tabbar,可以在loginViewController中添加。你必須分配/初始化每個將顯示爲製表符的控制器,然後將其添加到數組中。 – 2012-03-09 12:33:23

+0

o.k.在這種情況下,我應該不得不刪除loginViewControllerDidFinish:delegate方法,並在LoginViewController中成功驗證用戶身份時添加上面的代碼? – TechnocraT 2012-03-09 12:53:31