当容器视图控制器中发生某些事情时,如何更新视图控制器?
How can I update a view controller when something happens in a container view controller?
我需要做的是能够在其中的容器视图中发生某些事情时更新我的主视图控制器。
例如,如果页面顶部有一个带有保存按钮的导航栏。导航栏下方是一个容器视图和一个表单。保存按钮是灰色的,直到文本被输入到表单中,然后它变得难以处理用户。我想做类似的事情,以便主视图控制器响应容器视图上发生的事情。
我可以使用单例创建一个布尔变量,当我希望我的代码变为 运行 时该变量会发生变化,但是我怎样才能做到这一点以便一旦该变量变为 true
,其他视图控制器 运行s 并响应此更改?
我在 this post 中看到我可以使用委托,但它仍然给我留下了另一个视图控制器如何检测变量已更改的问题 - 此 [= 中的方法27=] 只是另一种让我认为可以从另一个视图控制器访问变量的方法。
我想我可以有一个 while 循环 运行ning 检查变量但是这会冻结主视图控制器直到 while 循环完成 - 在这种情况下变量是 true
不是吗?
有没有一种方法可以让视图控制器检查变量是否已更改,以便一旦发生更改,某些代码就可以 运行 之后不会像我认为的 while 循环那样冻结视图控制器?或者视图控制器响应变量值的方法?
谢谢。
让主视图控制器侦听 NSNotification,告诉它需要保存一些东西。输入文本时,负责文本字段的控制器会发送通知。
如果目标需要了解其详细信息,您可以将新文本(或其他信息)附加到通知中。
我需要做的是能够在其中的容器视图中发生某些事情时更新我的主视图控制器。
例如,如果页面顶部有一个带有保存按钮的导航栏。导航栏下方是一个容器视图和一个表单。保存按钮是灰色的,直到文本被输入到表单中,然后它变得难以处理用户。我想做类似的事情,以便主视图控制器响应容器视图上发生的事情。
我可以使用单例创建一个布尔变量,当我希望我的代码变为 运行 时该变量会发生变化,但是我怎样才能做到这一点以便一旦该变量变为 true
,其他视图控制器 运行s 并响应此更改?
我在 this post 中看到我可以使用委托,但它仍然给我留下了另一个视图控制器如何检测变量已更改的问题 - 此 [= 中的方法27=] 只是另一种让我认为可以从另一个视图控制器访问变量的方法。
我想我可以有一个 while 循环 运行ning 检查变量但是这会冻结主视图控制器直到 while 循环完成 - 在这种情况下变量是 true
不是吗?
有没有一种方法可以让视图控制器检查变量是否已更改,以便一旦发生更改,某些代码就可以 运行 之后不会像我认为的 while 循环那样冻结视图控制器?或者视图控制器响应变量值的方法?
谢谢。
让主视图控制器侦听 NSNotification,告诉它需要保存一些东西。输入文本时,负责文本字段的控制器会发送通知。
如果目标需要了解其详细信息,您可以将新文本(或其他信息)附加到通知中。