我遇到了一种奇怪的行为......
在A组中,我使用viewDidLoad
方法:
b = [[B alloc] initWithNibName:@"B" bundle:nil]; //init the B class (declared as B* b)
[b setText:@"ABCDDEEE"]; //change the text of a UITextView in b
请注意,只有按下按钮才会显示b的视图。但是,当我按下它并转到b的视图时,UITextView
的文本仍然是“lorem ipsun”文本
一旦b的视图显示一次,我就可以更改文本。
任何人都知道这个问题以及如何解决它?
答案 0 :(得分:1)
这是预期的行为。 initWithNibName
无法保证在调用viewDidLoad
之前完成初始化。
答案 1 :(得分:1)
在B中创建NSString @property
。在加载b
时设置该属性 - 不是UITextView的.text属性,而是视图控制器中的NSString数据对象。然后在B的-(void)viewDidLoad
中,使用您设置的字符串设置UITextView的text属性。
当父视图控制器首次实例化新视图控制器时,NIB元素不一定存在,但您可以与数据字段对话,然后将该数据加载到-(void)viewDidLoad
中的视图层次结构成员中。