我有UIViewController
(1)。
在此UIViewController
中,我有Container View
(2)。
在Container View
's(2)UIViewController
(3)中,我有UILabel
。
如何从第一个UIViewController
(1)?
我的UIStoryboard
看起来像这样:
答案 0 :(得分:0)
实施prepareForSegue。在实例化视图控制器(1)时将调用它。您可以将segue.destinationViewController(它是视图控制器(3))分配给当时的属性,然后您可以访问它的任何属性。
答案 1 :(得分:0)
您可能要做的是在父视图控制器中创建对子视图控制器的引用,并通过子视图控制器访问label属性。
但是,通常,您不希望父对象直接控制子对象的元素。从本质上讲,您希望管理UILabel及其内容的责任落在视图控制器拥有它的任何位置。所以我建议设计app逻辑,使子视图控制器完全管理自己的对象。
例如,您可以创建一个类似- (void)UpdateYourLabelWithText:(NSString *)text;
的方法,然后在内部进行更新,而不是简单地在子视图控制器上提供对UILabel的公共访问权限。这将您的视图控制逻辑与委托责任分离到正确的视图控制器。