xcode - 当容器 View Controller 中发生某些情况时,如何更新 View Controller ?

标签 xcode swift containers viewcontroller

我需要做的是当主视图 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/

相关文章:

objective-c - 尝试使用 StringWithFormat 在 UILabel 中显示表情符号

xcode - 如何获取 safari mailto : behaviour for a mac app?

swift - 如何实现 swift3 函数并完成等待被动函数调用?喜欢 Facebook sdk

swift - 在 Swift 4 中屏蔽电子邮件和电话号码

css - 布局,其中许多容器需要占用剩余空间,但需要占用一个内部滚动条。 CSS

c++ - 缓存结束迭代器——好主意还是坏主意?

ios - “滑动时隐藏导航栏”永远不会返回

Xcode 不反射(reflect)来自 react-native 的最新应用程序代码

swift - IBDesignable 类绘图 UIImage 未在 Storyboard 中显示

Docker:以非 root 用户身份在容器中挂载本地目录