2014-07-05 33 views
0

我想將用戶輸入的任何字符串傳遞給指派給來自NSString的UITextField的不兼容指針類型的UITextField' over to the destination view controller, but when I NSLog the value in the destination, it shows up as null. I'm also getting a warning stating:。我該如何正確地完成任務並將其發送出去?在將UITextField的內容從一個控制器傳遞到另一個控制器時遇到問題

始發視圖控制器

SearchViewController.m:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 
    controller.itemSearch = self.itemSearch.text; 
} 

SearchViewController.h:

@property (weak, nonatomic) IBOutlet UITextField *itemSearch; 

目的地視圖控制器

UserCategoryChooserViewController.h:

#import <UIKit/UIKit.h> 
#import "SearchViewController.h" 

@interface UserCategoryChooserViewController : UIViewController 

@property (weak, nonatomic) IBOutlet UITextField *itemSearch; 

UserCategoryChooserViewController.m:

NSLog(@"The text is:'%@'", self.itemSearch.text); // results in (null) 
+0

可能重複[在視圖控制器之間傳遞數據](http://stackoverflow.com/questions/5210535/passing-data-between-view-controllers) – nhgrif

回答

1

以上兩個答案也是正確的。但是,如果你想分配適當再修改文本字段變量的NSString變量一樣,如下所示:

@interface UserCategoryChooserViewController:UIViewController 
@property (strong, nonatomic) NSString *itemSearch; 

這樣你的警告 不兼容的指針類型從NSString分配給UITextField後會移除的

1

controller.itemSearch是爲UITextField *,而你試圖將其設置爲的NSString *,這是該警告是什麼。要設置的UITextField的文字,試試這個:

[controller.itemSearch setText:self.itemSearch.text]; 

可能有其他的問題,但讓我們從這裏開始。

1

讓我們來看看你所看到的錯誤。它表示您將NSString *分配給UITextField *。不幸的是,你不能那樣做。這裏,itemSearch是文本字段。

要使代碼正常運行,需要設置itemSearch文本字段的text屬性。正確的代碼是:

controller.itemSearch.text = self.itemSearch.text; 

作爲一個側面說明,你應該不會這麼深插手到iOS開發,直到你做出了堅實的基礎,你沒有。

相關問題