目前,我使用视图控制器来推送另一个视图控制器,但我不允许用户返回到上一个视图控制器。我已经隐藏了栏后退按钮,但在 swift 4 中,当标签栏点击两次时,用户能够自动转到导航栏中的 rootviewcontroller。关于 swift 4.2 有什么建议可以解决这个问题吗?
您可以子类化UITabBarController,使选项卡栏控制器成为它自己的委托并实现以下委托函数:
class TabBarController: UITabBarController, UITabBarControllerDelegate {
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
delegate = self
}
override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: Bundle?) {
super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil)
delegate = self
}
func tabBarController(_ tabBarController: UITabBarController, shouldSelect viewController: UIViewController) -> Bool {
return viewController != selectedViewController
}
}
Run Code Online (Sandbox Code Playgroud)
这样用户只能选择尚未选择的选项卡栏项目。
| 归档时间: |
|
| 查看次数: |
1948 次 |
| 最近记录: |