2

我正在开发一个应用程序,其中UINavigationController嵌入了一个UITabBarController. 当点击单元格时,UINavigationControllerUITableView会转换为DetailController

我的问题是:我在[TAB1]上选择一个单元格并转换到DetailController。如果我选择[TAB2]然后返回[TAB1]它仍然在细节控制器上。无论如何,选择[Tab2]时我可以在[ Tab1 ]上解除/解除详细信息控制器(即它再次显示表视图单元格)。

我的另一个想法是,这样做不会使 UI 处于用户离开它的状态,即在查看DetailController并按[TAB2]返回[TAB1]后会向用户显示UITableView. 如果您离开TAB ,应用程序恢复DetailController感觉更好,这就是我问的原因......

注意:I present the *DetailController* via a push segue from theUITableViewCell.

4

1 回答 1

2

您可以实现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;
}
于 2013-03-22T18:30:14.623 回答