iphone - 在相互竞争的模态视图 Controller 之间切换

标签 iphone ios modalviewcontroller

我的应用具有三种状态:

  • A) 连接到服务器
  • B) 已连接到 wifi,但没有互联网
  • C) 没有联系

第一个状态是应用程序的默认操作模式,另外两个(B 和 C)呈现为模态视图 Controller 。在各种可达性更改时,应该会出现正确的模态视图。

不幸的是,在某些情况下,B 和 C 都试图同时出现,或者 B 当前出现并且可能距离关闭还有一毫秒的时间,但 C 已经在尝试显示自己。

我的解决方案基本上是为每个模态视图创建一个带有一些委托(delegate)的信号量 - 当模态视图打开时,它会通过委托(delegate)发送消息以转到主视图以打开标志。然后当第二个模态视图试图打开时,它会看到第一个打开并等待直到它关闭。对于试图制作一个非常基本的状态机的我来说,这似乎是一个荒谬的 hack。

有什么想法吗?

最佳答案

我会将单独的 B 和 C 案例折叠到一个 View Controller 中,该 View Controller 根据 B 或 C 在任何给定时刻发生的情况更改其 View 。这样你就不会让它们相互竞争,因为永远只有一个 View Controller 。

关于iphone - 在相互竞争的模态视图 Controller 之间切换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8995344/

相关文章:

iphone - UIScrollview subview 在枚举时显示不正确的帧

objective-c - iOS - 增加部分 curl 点击区域以关闭模态

iphone - Ntimer 计数错误

ios - 外部附件 : Receive Data using USB cable

ios - 重新加载 tableview 后保留 contentOffset 是一种方法吗?

javascript - 小 JS 脚本的背景图像不透明度在 iOS 上不起作用

iphone - UINavigationController 使一个 View 模态化

ios - UITableViewCell以编程方式动态调整高度

iphone - 在 UINavigationController 之上呈现模态视图 Controller

ios - 在窗口中使用我的尺寸打开模态 ViewController