防止双击 UITabBarController 时自动 popToRootViewController
UITabBarController 的默认行为是当第二次点击特定选项卡时将包含的 UINavigationController 弹出到根视图控制器。我有一个特定的用例,我希望它不会自动工作,并且我很难弄清楚如何防止这种情况。
有人遇到过这种情况吗?如果有,你做了什么?我是否需要子类化 UINavigationController 并覆盖 popToRootViewController 还是有更简单的方法?
The default behavior of a UITabBarController is to pop the contained UINavigationController to the root view controller when a particular tab is tapped a second time. I have a particular use case where I'm wanting this to not work automatically, and I'm having a hard time figuring out how to prevent this.
Has anyone run into this, and if so, what did you do? Do I need to subclass UINavigationController and override popToRootViewController or is there a simpler way?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
使用 tabBarController:shouldSelectViewController: UITabBarControllerDelegate 协议。
不要忘记将选项卡栏控制器的委托设置为实际实现此委托方法的对象。
Use the tabBarController:shouldSelectViewController: method of the UITabBarControllerDelegate protocol.
Don't forget to set the delegate of the tab bar controller to the object that actually implements this delegate method.
这就是我所做的:
问候
this is what I did:
regards
更新 Swift 4.1
希望有帮助...
谢谢!
Update Swift 4.1
Hope it helps...
Thanks!!!
这种行为有点奇怪,但在层次结构很深的情况下,这是一个方便的捷径!
您可以实现以下 UITabBarControllerDelegate 方法来禁用此系统范围的快捷方式:
This behavior is a little strange, but a handy shortcut in case of deep hierarchy!
You can implement following UITabBarControllerDelegate methods to disable this system wide shortcut:
这是 Swift 3 版本:
Here is the Swift 3 version: