我正在将UINavigationController嵌入到UITabBarController中的应用程序上工作。 UINavigationController具有一个UITableView,当点击一个单元格时该UITableView会转换为DetailController。

我的问题是:我在[TAB1]上选择一个单元格并过渡到DetailController。如果选择[TAB2],然后返回[TAB1],则它仍在详细信息控制器上。无论如何,当选择[TAB2]时,我可以展开/关闭[TAB1]上的DetailController(即再次显示表格视图单元格)。

我的另一种思路是,这样做不会使UI保持用户留在其中的状态,即在查看DetailController并按[TAB2]后返回[TAB1]将向用户显示I present the *DetailController* via a push segue from the中的单元格。 。如果您离开TAB,应用程序还原DetailController感觉更好,这就是为什么我要问...

注意:. UITableViewCell

最佳答案

更改选项卡后,可以实现UITabBarControlleDelegate并使用UINavigationController返回到popToRootViewControllerAnimated:的根视图。

代码示例:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    UITabBarController *tabBarController = (UITabBarController *)self.window.rootViewController;
    tabBarController.delegate = self;
    return YES;
}

  - (BOOL)tabBarController:(UITabBarController *)tabBarController
shouldSelectViewController:(UIViewController *)viewController
{
    UIViewController *currentController = tabBarController.selectedViewController;
    if ([currentController isKindOfClass:[UINavigationController class]])
         [(UINavigationController *)currentController popToRootViewControllerAnimated:NO];
    return YES;
}

关于iphone - 更改UITabBar选项卡时关闭DetailController吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15577366/

10-13 06:35