所以,我有一个按钮视图。我点击此按钮并出现样式为“表单”的模式视图。在那里我进行了更改,因此必须更改我们第一个带有按钮的视图(现在位于模态视图后面)的背景颜色。问题是,如何做到这一点?
问问题
834 次
2 回答
1
底层页面的视图控制器仍然存在,并且仍然可以在其视图上执行代码。视图可能会被卸载,因为它不在屏幕上,但 viewcontroller.view 是一个惰性构造器,因此在其上设置属性将导致它被重新创建。
诀窍是如何与底层视图控制器通信。处理跨视图控制器通信的一个好方法是使用 NSNotificationCenter 发布 NSNotification。
设置您的背景视图控制器以观察名为“BackgroundColorChangedNotification”之类的通知,然后从您的模态表单视图控制器发布具有该名称的通知。
这种方法的优点是,如果应用程序中的任何其他控制器需要了解此更改,它们都可以注册通知,并且这些控制器都不需要了解彼此的任何信息,因此您的代码很好地解耦了。
于 2012-01-20T15:41:05.893 回答
0
Self.view.parentView 将让您访问第一个视图
然后您可以使用 setBackgrouncolor 方法更改其背景
于 2012-01-20T15:26:29.510 回答