2013-04-30 84 views
1

我有一個標籤欄,可以瀏覽到子屏幕。iOS刷新選項欄後的項目

當您選擇標籤項目時,重新啓動標籤欄項目(第一個屏幕)。

Tab bar picture 因此,基本上當您選擇第一個標籤欄(請參閱上面的圖片)並從tableview中選擇某些內容時,您將被引導至集合視圖(黑色屏幕)。當您選擇第二個選項卡欄項目並返回到選項卡欄中的第一個項目時,它將繼續停止(黑色屏幕)。

我該如何重新開始?

我已經使用這個嘗試,

- (void) viewDidLoad{ 
    [self.tabBarController addObserver:self forKeyPath:@"selectedViewController" options:NSKeyValueObservingOptionNew context:@"changedTabbarIndex"]; } 


- (void) observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void 
*)context{ 
    [self viewDidAppear:YES]; } 

但是,只有重新加載在第二次點擊屏幕。

回答

3

從我在你的形象看你有沒有UINavigationController爲每個標籤欄項目根視圖控制器,所以你可以做什麼是你的UITabBarController實現以下方法:

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController { 
    if (tabBarController.selectedIndex == YOUR_TAB_INDEX) { 
     //YOUR_TAB_INDEX is the index of the tab bar item for which you want to show the rootView controller 
    UINavigationController *navController = (UINavigationController*)viewController; 
    [navController popToRootViewControllerAnimated:YES] 
    } 

}

這將刪除所有添加到UINavigationController視圖控制器,這是您的標籤欄項目的根視圖控制器

+0

真棒,非常感謝 – user1838169 2013-04-30 12:04:12

+0

很高興我可以幫助;) – danypata 2013-04-30 12:13:45

+0

這是哪個文件放置的? – Julia 2014-03-18 13:31:04