2012-07-09 51 views
0

我試圖設置和檢索titleViewController上的UITextField對象中的文本。從另一個對象設置文本字段ios

我有一個Journal對象有一個對titleViewController對象的引用,但我似乎無法設置UITextField的文本值。

我在titleViewController中有一個UITextField對象的插口,而Journal可以看到它,但是當我寫代碼來設置該值時,它在運行時不會發生任何事情。

在XCode或Log中沒有彈出的錯誤。我知道它應該能夠工作,因爲這個設置可以用於訪問由同一個日誌管理的其他此類viewController中的自定義方法。

CNC中

這裏是作爲所請求的代碼示例:

//Get viewController from Array 
TitleVC *titlePage = [_PageArray objectAtIndex:0]; 

//Get string from Dictionary 
NSString *test = [_saveDictionary objectForKey:@"Name"]; 

//This is one of the attempts to set the UITextField 
//FIXED by Tomy211(but still does not work) 
[titlePage.textName setText:test]; 

//This is attempting dot notation 
titlePage.textName.text = test 
titlePage.textName = test //Wrong I know but had to test 

//Also made sure test was a proper string 
NSLog(test) //Displayed "Dan" as Expected 

這是Journal.m使用此代碼被訪問從故事板到titleVC的引用:

-(UIViewController *)loadView:(NSString *)viewID{ 
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil]; 
    UIViewController *viewController = [storyboard instantiateViewControllerWithIdentifier:viewID]; 
    return viewController; 
} 

從該方法返回的ViewController用於在滾動視圖中顯示視圖,並且我沒有以這種方式從ViewControllers訪問方法的問題。

我想要做的就是讓Journal.m設置並讀取來自textName的值,它是連接到UITextField的插座。

-UPDATE-

我檢查,我發現我可以閱讀文本字段的值,但不寫它。

-FINAL UPDATE-

我發現問題與我的代碼。代碼是正確的(減去Tomy211的修正),但問題出在我調用代碼的地方。我在顯示視圖之前調用了該方法,因此當視圖顯示時,它會恢復爲默認值。

所有有類似問題的注意事項: 檢查以確保在更新視圖的UIObject部分的值之前顯示視圖。如果您必須更新未顯示視圖的值,請使用實例變量,並讓UIObject從viewDidLoad方法獲取它們的值。

+0

請編輯此帖以顯示您嘗試過的代碼,並詳細說明您期望發生的事情與實際發生的事情,以便我們能夠更好地爲您提供幫助。 – 2012-07-09 21:41:32

+0

添加了代碼以及我正在嘗試執行的操作。截至目前,該代碼什麼都不做,並且沒有任何錯誤。它沒有語法錯誤,並且沒有運行時錯誤。 – RMDan 2012-07-09 22:20:43

+0

你確定在故事板中正確地分配了'textName'插座嗎? – KDaker 2012-07-09 23:35:51

回答

0

問題是我試圖在視圖加載之前更新TextField對象。 將方法調用移至點加載視圖後修復問題。我已經更新了我的問題,以反映什麼是正確的,什麼是不正確的。

所有存在類似問題的注意事項:在更新視圖的UIObject部分的值之前,檢查以確保顯示視圖。如果您必須更新未顯示視圖的值,請使用實例變量,並讓UIObject從viewDidLoad方法獲取它們的值。

相關問題