我正在开发一个应用程序,其中UINavigationController
嵌入UITabBarController
。 UINavigationController
有一个UITableView
,当点按一个单元格时会转换为 DetailController 。
我的问题是:我在 [TAB1] 上选择一个单元格并转换到 DetailController 。如果我选择 [TAB2] ,然后返回 [TAB1] ,它仍然在详细控制器上。无论如何选择 [TAB2] ,我可以在 [TAB1] 上展开/关闭 DetailController (即显示表格视图再次细胞)。
我的另一种想法是,这样做不会让UI处于用户离开状态的状态,即在查看 DetailController 并按 [TAB2] 之后返回 [TAB1] 会向用户显示UITableView
中的单元格。如果你离开 TAB ,应用程序恢复 DetailController 会感觉更好,这就是我要问的原因......
注意:I present the *DetailController* via a push segue from the
UITableViewCell .
答案 0 :(得分: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;
}