我需要做的是当主视图 Controller 内部的容器 View 发生某些情况时能够更新它。
例如,如果页面顶部有一个带有保存按钮的导航栏。导航栏下方是容器 View 和表单。在将文本输入表单之前,“保存”按钮将呈灰色显示,然后用户就很难处理它了。我想做类似的事情,以便主视图 Controller 响应容器 View 上发生的事情。
我可以使用单例创建一个 bool 变量,当我希望我的代码运行时,该变量会发生变化,但是如何才能做到这一点,以便一旦该变量更改为true
,另一个 View Controller 上的代码运行并响应此更改?
我在this中看到发布我可以使用委托(delegate),但它仍然给我留下了另一个 View Controller 如何检测变量已更改的问题 - 这篇文章中的方法只是我认为从另一个 View Controller 访问变量的另一种方法。
我认为我可以运行一个 while 循环来检查变量,但这会卡住主视图 Controller ,直到 while 循环完成 - 在这种情况下,当变量为 true
时,不是吗? ?
是否有一种方法可以让 View Controller 检查变量是否已更改,以便一旦更改,某些代码可以在之后运行,而无需像我认为的 while 循环那样卡住 View Controller ?或者 View Controller 响应变量值的方法?
谢谢。
最佳答案
让主视图 Controller 监听 NSNotification,告诉它需要保存某些内容。输入文本时,负责处理文本字段的 Controller 会发送通知。
如果目标需要了解其详细信息,您可以将新文本(或其他信息)附加到通知中。
关于xcode - 当容器 View Controller 中发生某些情况时,如何更新 View Controller ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29435064/