我的应用程序具有三个状态:竞争模态视图控制器之间切换
- A)与连接到无线网络服务器
- B),但没有互联网
- C)没有连接
第一个状态是应用程序的默认操作模式,另外两个(B & C)作为模态视图控制器呈现。在各种可达性改变中,应该出现正确的模态视图。
不幸的是,在某些情况下,B & C都试图同时呈现,或者B当前呈现并且可能距离关闭一毫秒,但C已经试图展示自己。
我的解决方案是基本上为每个模态视图创建一个信号量 - 当模态视图打开时,它通过委托发送消息到主视图打开标志。然后,当第二个模式视图尝试打开时,它会看到第一个模式视图处于打开状态,并等待它关闭。这对我试图构建一个非常基本的状态机似乎是一个荒谬的黑客攻击。
有什么想法?
这似乎是最简单的解决方案 - 没有通知,没有委派,所以代码将尽可能维护。 – nflacco