[英]Detecting double tap on a tab bar that pops navigation controller back to root view
[英]Tab bar, tap to Root View Controller
我有一个Swift项目。
它在UITabBarController
内部具有UINavigationViewController
。 轻击负责两次显示“导航视图控制器”的选项卡时,它将跳回到Nav的根视图控制器。
如何使用Swift禁用此功能?
NB。 我已经看到了使用UITabBarControllerDelegate的Objective C实现,但是我认为我在Swift中做的不正确。
谢谢。
斯威夫特3.0
add UITabBarControllerDelegate to master class
override func viewDidLoad() {
tabBarController?.delegate = self
}
func tabBarController(_ tabBarController: UITabBarController, didSelect viewController: UIViewController) {
_ = navigationController?.popToRootViewController(animated: true)
}
实现它的正确方法是使用UITabBarControllerDelegate协议的tabBarController:shouldSelectViewController:方法。 我在这里看到的问题是您不确定在哪里设置委托。 在Objective C或Swift中进行的操作之间应该没有太大的区别。
您可能需要尝试以下几个简单步骤:
检索选项卡栏控制器:我不知道您的应用程序的UI结构,但是您应该能够从代码轻松获得选项卡栏控制器。 如果以编程方式创建它,则可能是一个属性;如果将其拖放到主故事栏,则可能只是键窗口的rootViewController。
只要类符合UITabBarControllerDelegate协议,就可以将标签栏控制器的委托分配给所需的任何类的实例。
实现上面提到的tabBarController:shouldSelectViewController:方法,以决定选择选项卡时应显示的内容。
如果您可以提供一些代码,我也可以通过示例向您展示如何实现。
祝好运。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.