iphone - 当 UITabBar 选项卡更改时关闭 DetailController?

标签 iphone objective-c cocoa-touch uitableview uitabbarcontroller

我正在开发一个应用程序,其中我有 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/

相关文章:

iphone - 限制输入到UITextField的字符数

ios - 即使应用程序位于同一位置,信标的邻近范围也会来回变化

ios - react 性 cocoa `then` 运算符(operator)

objective-c - 如何从devicename(UITableViewCell)中的tableview中显示蓝牙支持的服务?

ios - 如何获得给定值在 UISlider 中的位置?

objective-c - NSString 和 NSMutableString 连接

iphone - 将文本框数据写入Plist

iPhone如何以编程方式访问通知中心

iphone - 使用 NIB 文件用委托(delegate)实例化 UIView 子类

ios - 当 WKWebView 尝试呈现 WKActionSheet 时,长按会导致错误/警告