iphone - 查看init问题

时间:2010-08-20 10:21:07

标签: iphone objective-c class uitextview

我遇到了一种奇怪的行为......

在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的视图显示一次,我就可以更改文本。

任何人都知道这个问题以及如何解决它?

2 个答案:

答案 0 :(得分:1)

这是预期的行为。 initWithNibName无法保证在调用viewDidLoad之前完成初始化。

答案 1 :(得分:1)

在B中创建NSString @property。在加载b时设置该属性 - 不是UITextView的.text属性,而是视图控制器中的NSString数据对象。然后在B的-(void)viewDidLoad中,使用您设置的字符串设置UITextView的text属性。

当父视图控制器首次实例化新视图控制器时,NIB元素不一定存在,但您可以与数据字段对话,然后将该数据加载到-(void)viewDidLoad中的视图层次结构成员中。