0

所以,我有一个按钮视图。我点击此按钮并出现样式为“表单”的模式视图。在那里我进行了更改,因此必须更改我们第一个带有按钮的视图(现在位于模态视图后面)的背景颜色。问题是,如何做到这一点?

4

2 回答 2

1

底层页面的视图控制器仍然存在,并且仍然可以在其视图上执行代码。视图可能会被卸载,因为它不在屏幕上,但 viewcontroller.view 是一个惰性构造器,因此在其上设置属性将导致它被重新创建。

诀窍是如何与底层视图控制器通信。处理跨视图控制器通信的一个好方法是使用 NSNotificationCenter 发布 NSNotification。

设置您的背景视图控制器以观察名为“BackgroundColorChangedNotification”之类的通知,然后从您的模态表单视图控制器发布具有该名称的通知。

这种方法的优点是,如果应用程序中的任何其他控制器需要了解此更改,它们都可以注册通知,并且这些控制器都不需要了解彼此的任何信息,因此您的代码很好地解耦了。

于 2012-01-20T15:41:05.893 回答
0

Self.view.parentView 将让您访问第一个视图

然后您可以使用 setBackgrouncolor 方法更改其背景

于 2012-01-20T15:26:29.510 回答