我正在开发一个应用程序,其中我有 UINavigationController
嵌入 UITabBarController
内。 UINavigationController
有一个UITableView
当点击单元格时,会转换为 DetailController。
我的问题是:我在[TAB1]上选择一个单元格并转换到DetailController。如果我选择[TAB2],然后返回[TAB1],它仍然在细节 Controller 上。无论如何,当选择 [TAB2] 时,我可以展开/关闭 [TAB1] 上的 DetailController (即,它显示表格 View )再次细胞)。
我的另一个想法是,这样做不会使 UI 保持用户离开时的状态,即在查看 DetailController 并按 [TAB2] 后返回到 [TAB1] 将为用户显示 UITableView
中的单元格。 。如果您离开 TAB,应用程序恢复 DetailController 感觉会更好,这就是我问的原因...
注意:I present the *DetailController* via a push segue from the
UITableViewCell .
最佳答案
您可以实现UITabBarControlleDelegate并在选项卡更改时使用 popToRootViewControllerAnimated:
返回 UINavigationController
的 Root View 。
代码示例:
- (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/