ios - 在用户更改到另一个选项卡之前强加一个需要满足的条件

标签 ios cocoa-touch uitabbarcontroller

在某些情况下,我需要确保用户在移动到 UITabBarController 中的另一个选项卡之前已完成某些步骤。因此,如果用户正在处理某事并点击另一个选项卡,我想显示一个 UIAlertView 说“在转到另一个选项卡之前,你必须完成 blah blah blah。”

是否可以检查此条件并取消移动到另一个 View Controller ?

最佳答案

当然可以。我想你的标签栏 Controller 在 AppDelegate 类中。如果是这样,请将 AppDelegate 设置为它的委托(delegate)。然后实现下面的方法

- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController {
  // place all the checks here
  EditingViewController *editingController = //link to controller where editing is being made.
  if (editingController && editingController.isEditing) {
    //UIAlertView
    return NO;
  }
  return YES;
}

关于ios - 在用户更改到另一个选项卡之前强加一个需要满足的条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9185204/

相关文章:

ios - 我怎样才能从 superView 的中心给约束一些余量

ios - 使用 UICollectionView 页脚中的对象

ios - 在选项卡栏中第二次打开 View Controller 时大标题崩溃应用程序

iOS:以编程方式更改选项卡 - Storyboard

ios - 是否可以在 Xcode 7 中编译 Swift 2 代码并在 iOS 11.1 iPhone 6 上运行它?

objective-c - 在 block 内调用 block 时执行错误访问

iOS TabBar Item,增加图标大小

ios - 降低 iPod 音量以播放应用声音(如原生 SMS 应用)

ios - 根据变量使用不同的图像初始化 UIImageView

ios - 如何在 swift 3 中动态隐藏 tabBarController 中的选项卡