2013-04-30 46 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