当容器视图控制器中发生某些事情时,如何更新视图控制器?

时间:2015-04-03 15:26:19

标签: xcode swift containers viewcontroller

我需要做的是能够在内部容器视图中发生某些事情时更新我的​​主视图控制器。

例如,如果页面顶部有一个带有保存按钮的导航栏。导航栏下方是容器视图和表单。保存按钮显示为灰色,直到文本输入到表单中,然后它变得难以与用户一起使用。我想做类似的事情,以便主视图控制器响应容器视图上发生的事情。

我可以使用单例创建一个布尔变量,当我希望我的代码运行时它会发生变化,但是我怎么能这样做以便一旦这个变量变为true,另一个视图控制器上的代码就会运行并响应对这种变化?

我在this帖子中看到我可以使用委托,但它仍然让我知道另一个视图控制器如何检测到变量已经改变的问题 - 这篇文章中的方法只是另一种方法我认为可以从其他视图控制器访问变量。

我认为我可以运行一个while循环检查变量,但这会冻结主视图控制器,直到while循环结束 - 在这种情况下变量为true时不会吗?

视图控制器是否有办法检查变量是否已更改,以便一旦有变量,某些代码可以在之后运行而不冻结视图控制器就像我认为while循环一样?或者视图控制器响应变量值的方法?

谢谢。

1 个答案:

答案 0 :(得分:1)

让主视图控制器监听NSNotification,告诉它需要保存的东西。输入文本后,处理文本字段的控制器会发送通知。

如果目标需要了解其详细信息,您可以将新文本(或其他信息)附加到通知中。

相关问题