2012-07-13 37 views
2

當我傳遞一個字符串到另一個視圖時,我有一個空值。 我的代碼是:空值從iphone視圖傳遞到另一個

鑑於AddBarView.m,在那裏我有字符串:

nameAdded = nameField.text; //nameAdded is defined as NSString in AddBarView.h 
NSLog(@"namefrom addbarview: %@", nameAdded); OK it works here , NsLog return the textfild 

現在,在其他視圖AddLocationController.m

@synthesize nameAdded; 
- (void)addViewControllerDidFinish:(AddBarView *)controller 
{ 
    AddBarView *controllerAdd; 
    NSLog(@"namefrom addbarview: %@", controller.nameAdded); //here 

    [self dismissModalViewControllerAnimated:YES]; 
} 

NSLog返回(空)值。我的f Wh聲是什麼?

tx提前!

+0

你記錄了nameField.text嗎? – Lucas 2012-07-13 12:21:29

回答

2

您需要將內存分配給nameAdded字符串,如下所示,並使用nameField對其進行初始化。

nameAdded=[[NSString alloc] initWithFormat:@"%@",nameField.text]; 

編輯 把下面線在init方法。

nameAdded=[NSString stringWithFormat:@"%@",nameField.text]; 
+0

nameAdded在.h文件中定義爲NSString和resctive屬性和syntesize。 NSLog(@「%@」,nameAdded);返回正確的值,但在其他視圖中爲空 – doxsi 2012-07-13 12:31:39

+0

@doxsi這是因爲當你從另一個視圖調用它時,textfield沒有得到它的值。 – 2012-07-13 12:35:29

+0

嘗試編輯代碼 – 2012-07-13 12:40:04

1

其實你分配和初始化保存文本字段的類。所以它會一直返回NULL值,因爲textField也被分配和初始化。如果在訪問它的類之前調用​​類「AddBarView」,您可以簡單地將它傳遞給類。相反,在訪問它的類之後調用「AddBarView」,您可能希望將textField值存儲在全局字符串中!

+0

Tx。我怎樣才能定義一個全局字符串? – doxsi 2012-07-15 10:36:24

+0

你可以在很多方面做到這一點!通常,我將創建一個C文件(單獨保存.h文件)。在那裏聲明你的字符串。在'.pch'中導入。現在你可以在你的課堂上訪問它:-) – Nina 2012-07-16 06:01:21

2

nameAdded = nameField.text;你只保留了價值。如果稍後編輯nameField.text,則nameAdded的值也會更改。 你應該做一個副本來保持價值。 nameAdded = [nameField.text copy]; 檢查AddBarView的viewDidUnload函數是否釋放了nameAdded或不。 否則,這兩個nameAdded變量是相同的對象?請打印他們的地址。

相關問題