所以,我有一个按钮的视图。我点击此按钮,出现“Form Sheet”样式的模态视图。在那里我做了一个改变,并且由于这个改变,我们的第一个视图的背景颜色与按钮(现在在模态视图后面)必须改变。问题是,怎么做?
答案 0 :(得分:1)
底层页面的viewcontroller仍然存在,仍然可以在其视图上执行代码。视图可能会被卸载,因为它不在屏幕上,但是viewcontroller.view是一个懒惰的构造函数,因此在它上面设置属性将导致它无论如何都会被重新创建。
技巧是如何与底层视图控制器进行通信。处理跨视图控制器通信的一种好方法是使用NSNotificationCenter发布NSNotification。
设置背景视图控制器以观察名为“BackgroundColorChangedNotification”的通知,然后从模态窗体视图控制器发布带有该名称的通知。
这种方法的优点是,如果应用程序中的任何其他控制器需要知道这个更改,他们都可以只注册通知,并且这些控制器都不需要知道彼此的任何信息,因此您的代码是很好地解耦。
答案 1 :(得分:0)
Self.view.parent View将允许您访问第一个视图
然后,您可以使用setBackgroundcolor方法
更改其背景