在容器视图中访问视图对象

时间:2015-05-13 15:28:41

标签: ios objective-c iphone uiviewcontroller uicontainerview

我有UIViewController(1)。

在此UIViewController中,我有Container View(2)。

Container View's(2)UIViewController(3)中,我有UILabel

如何从第一个UIViewController(1)?

访问标签文本属性

我的UIStoryboard看起来像这样:

Storyboard

2 个答案:

答案 0 :(得分:0)

实施prepareForSegue。在实例化视图控制器(1)时将调用它。您可以将segue.destinationViewController(它是视图控制器(3))分配给当时的属性,然后您可以访问它的任何属性。

答案 1 :(得分:0)

您可能要做的是在父视图控制器中创建对子视图控制器的引用,并通过子视图控制器访问label属性。

但是,通常,您不希望父对象直接控制子对象的元素。从本质上讲,您希望管理UILabel及其内容的责任落在视图控制器拥有它的任何位置。所以我建议设计app逻辑,使子视图控制器完全管理自己的对象。

例如,您可以创建一个类似- (void)UpdateYourLabelWithText:(NSString *)text;的方法,然后在内部进行更新,而不是简单地在子视图控制器上提供对UILabel的公共访问权限。这将您的视图控制逻辑与委托责任分离到正确的视图控制器。