1

I have a tab bar that can browse into sub screens.

Restart the tab bar item (first screen) when you select the tab item.

Tab bar picture So basically when you select the first tab bar(see pic above) and select something from the tableview you are directed to the collection view (black screen). When you select the second tab bar item and go back to the first item in the tab bar, it continues where it left off (black screen).

How do i make it start over?

I've tried using this,

- (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]; }

But that only reloads the screen on the second click.

4

1 に答える 1

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これにより、タブ バー項目のルート ビュー コントローラーであるに追加されたすべてのビュー コントローラーが削除されます。

于 2013-04-30T11:39:39.427 に答える