ios - Swift - 更改 View 时确认

标签 ios swift uitabbarcontroller uialertview

我有一个 ViewController,它同时嵌入到 Tab Bar Controller 和 Navigation Controller 中。它具有游戏/测验的作用:

enter image description here

我希望用户在每次尝试更改 View (更改选项卡、单击“返回”或退出应用程序)时都确认是否要退出正在进行的游戏。

所以我想我的问题是:我应该把我的 UIAlertController 放在哪里才能让它按照描述的方式工作?

最佳答案

您可以分别为 UITabBarControllerUINavigationBarUITabBarControllerDelegateUINavigationBarDelegate 实现委托(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/

相关文章:

ios - 如何使用 UIBezierPath 为 Button 创建特定形状,如下面的带有 Swift 代码的附加图像所示?

ios - 如何使用 NSCoding swift 存储自定义对象数组的字典

ios - 再次按下时禁用所选选项卡的重新初始化

objective-c - iOS中的本地化

ios - Swift:UIActivityViewController 为空

ios - 核心数据栈结构

ios - 在 iOS 8 中,Tabbar 的 View Controller 在更改方向时重新加载

ios - 如何以正确的方式回到初始的 ViewController?

ios - 如何在 swift 2.0 的 UITextfield 中只允许特定的一组数字

iphone - 如何检测MoreController推送了新的VC?