2011-05-06 48 views
0

我有,我有一個文本view.I我在另一個班級創建這個視圖控制器的對象,並在該類我設置IBOutlet中的TextView的文本視圖控制器。 然後我在導航控制器上推動這個視圖控制器對象。IBOutlet中沒有得到外面設置didLoad

但是文本沒有被set.I調試它,發現文本視圖的對象顯示0x0。如果我在didLoad中設置文本,然後它被設置。此外,我試着先推動視圖,然後調用該方法來改變文字,但它仍然顯示0x0。

誰能告訴我,讓我知道,如果我做錯了什麼?

LookUpReference *lookUp = [[LookUpReference alloc]init]; 
[self.navigationController pushViewController:lookUp animated:NO]; 
[lookUp loadViewWithResponse:responseString]; 

方法loadViewWithResponse: -

-(void) loadViewWithResponse:(NSString *)responseString 
{ 
    txtViewDescription.text=responseString; 
} 

回答

0

的XIB文件延遲加載,在參照視圖伊娃,所以你txtViewDescription爲空在那之前。嘗試訪問視圖成員造成視圖控制器加載它。

0

正如@DavidNeiss說你需要訪問視圖。嘗試:

self.view = self.view; // Causes the view to load

這種形式不會造成任何警告。

1

Viewcontrollers懶惰地加載它們的視圖。所以當你設置屬性txtViewDescription.text = responseString;時,你實際上是將responseString賦值給一個變量nil。所以如果你想做這樣的事情,你可以然後創建一個新的屬性,並輸入NSString,並將值賦給此實例變量。而不是將responseString分配給textview,並將其分配給該變量,並在您的viewDidLoad或您正在使用的任何選擇器中獲取該值。