我有一个 ViewController,它同时嵌入到 Tab Bar Controller 和 Navigation Controller 中。它具有游戏/测验的作用:
我希望用户在每次尝试更改 View (更改选项卡、单击“返回”或退出应用程序)时都确认是否要退出正在进行的游戏。
所以我想我的问题是:我应该把我的 UIAlertController
放在哪里才能让它按照描述的方式工作?
最佳答案
您可以分别为 UITabBarController
和 UINavigationBar
、UITabBarControllerDelegate
和 UINavigationBarDelegate
实现委托(delegate)。
对于 UITabBarControllerDelegate
实现:
func tabBarController(tabBarController: UITabBarController, shouldSelectViewController viewController: UIViewController) -> Bool {
// alert here, don't go back unless user confirms
}
对于 UINavigationBarDelegate
实现:
func navigationBar(navigationBar: UINavigationBar, shouldPopItem item: UINavigationItem) -> Bool {
// alert here, don't go back unless user confirms
}
注意:UINavigationBar
是您的 UINavigationController
的属性 - 您可以通过 navigationController.navigationBar.delegate = self;
成为代理
关于ios - Swift - 更改 View 时确认,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37244352/