【问题标题】:Tab bar, tap to Root View Controller标签栏,点击到根视图控制器
【发布时间】:2015-12-08 21:22:48
【问题描述】:

我有一个 Swift 项目。

它在UITabBarController 内有一个UINavigationViewController。当两次点击负责显示 Navigation View Controller 的选项卡时,它会跳回 Nav 的根视图控制器。

如何使用 swift 禁用此功能?

注意。我已经看到使用 UITabBarControllerDelegate 的 Objective C 实现,但我认为我在 Swift 中做的不是正确的。

谢谢。

【问题讨论】:

标签: ios xcode swift


【解决方案1】:

斯威夫特 3.0

add UITabBarControllerDelegate to master class

override func viewDidLoad() {
    tabBarController?.delegate = self  
}

func tabBarController(_ tabBarController: UITabBarController, didSelect viewController: UIViewController) {
     _ = navigationController?.popToRootViewController(animated: true)
}

【讨论】:

    【解决方案2】:

    实现它的正确方法是使用 UITabBarControllerDelegate 协议的 tabBarController:shouldSelectViewController: 方法。我在这里看到的问题是您不确定在哪里设置委托。用 Objective C 或 Swift 做应该没有太大区别。

    您可能需要尝试以下几个简单的步骤:

    1. 检索标签栏控制器: 我不知道您的应用程序的 UI 结构,但您应该能够从代码中轻松获取标签栏控制器。如果您以编程方式创建它,它可能是一个属性,或者如果您将它拖放到主故事栏,它可能只是键窗口的 rootViewController。

    2. 将标签栏控制器的委托分配给您想要的任何类的实例,只要该类符合 UITabBarControllerDelegate 协议即可。

    3. 实现上面提到的tabBarController:shouldSelectViewController:方法来决定当一个标签被选中时应该显示什么。

    如果你能提供一些代码,我也可以通过例子告诉你如何制作。

    祝你好运。

    【讨论】:

      猜你喜欢
      • 2012-07-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-23
      • 1970-01-01
      • 2011-12-15
      • 1970-01-01
      相关资源
      最近更新 更多