我需要运行一些依赖于用户决策的验证(例如,如果批准购买超过支出限制),并且如果失败则拒绝"完成"操作.
然而,看起来像是不可能有一个真正的模态动作,如与其他语言(如showmessage,alert()等),一切都是由代表.
但后来我不知道该怎么办.如果用户按下"完成"按钮,程序会询问"你确定吗?" 他说"取消"流程继续,视图被推回!
如何在可可世界解决这个问题?
解决方案不是打击它,只是将你的逻辑分成两部分.如果用户单击取消,请不要执行第二部分.如果用户单击"确定/继续",请执行第二部分.
阻塞主线程导致的主要问题是主线程处理事件.处理事件的经典方法可能会引入奇怪的事件处理错误,因为您没有一个事件循环,而是将多个事件循环嵌入到彼此中.
通过使用委托,您可以利用一个事件循环(通过UIApplicationMain调用),并且不会出现任何这些事件处理奇怪现象.