2011-12-05 104 views
4

我正在製作一個應用程序,其行爲類似iPhone中的默認Messages.app,其中用戶在UITextField中撰寫短信並點擊發送按鈕時,值在ComposeViewController中的UITextField將被轉移到表格單元的UILabel中的一個自定義單元格MasterViewControllerDetailViewController其中另一個UILabel將從UITextField獲得文本值。 DetailViewController是用戶從UITableViewCells中點擊單元格時加載的ViewController如何從文本字段發送文本到另一個視圖控制器

我實際上閱讀了下面的相關文章,但它在我的結尾沒有用。

  • 如何將文本從textfield發送到另一個類?
  • 如何在另一個文本字段中查看一個文本字段中的文本?
  • 如何文本字段值發送到另一個類

能否請您指導我如何正確地實現這一點?我知道這很容易。我只是不知道爲什麼它不起作用。 ComposeVC是ModalViewController而DetailVC是當用戶點擊MasterVC表格中的單元格時加載的視圖。

非常感謝!

下面是我對ComposeVC.h代碼:

UITextField *messageTextField; 

    @property (nonatomic, retain) IBOutlet UITextField *messageTextField; 

    - (IBAction)buttonPressed:(id)sender; 

爲ComposeVC.m

synthesize messageTextField; 

    -(IBAction)buttonPressed:(id)sender 
    { 
     DetailVC *detailVC = [[DetailVC alloc] init]; 
     detailVC.messageText = messageTextField.text; 
    } 

爲DetailVC.h

NSString *messageText; 

    @property (nonatomic, copy) NSString *messageText; 

爲DetailVC.m

@synthesize messageText; 

    - (void)viewLoad 
    { 
     testLabel.text = messageText; 
    } 

testLabel是我的DetailVC中的UILabel。

+0

看這一個: http://stackoverflow.com/questions/8162777/pass-object-from-vc-to-app-delegate/8163590#8163590 –

+0

謝謝,但它只是讓我感到困惑了。我需要的僅僅是將UITextField中的值傳遞到其他VC上,就像在Messages.app中構建ModalVC上的文本消息一樣,並將文本值傳遞給單元格和消息泡泡。 – jaytrixz

回答

0

您可以簡單地在另一個viewController上創建屬性。假設你的文本框是在廠景,你​​想發送對視圖2則:

鑑於2 .h文件中

#interface view2:UIViewController { 
NSString *str; 
} 
@property (nonatomic, retain) NSString *str; 

在.m文件 @synthesize海峽

;

現在你可以在廠景發送文本查看2,如:

objView2.str = txtField.text; 

對於另一個使用一個瀏覽文本框的文本 secondTextField.text = firstTextField.text;

希望這有助於讓我知道,如果你正在尋找不同的東西。

+0

我編輯了我的問題上面。請參閱更改。到目前爲止,你的答案是最接近的答案。提前致謝。我會嘗試你的建議。 – jaytrixz

+0

我認爲它的工作原理是因爲我的testLabel變爲空白。任何建議,爲什麼它是這樣的? – jaytrixz

+0

您是否通過創建IBOutlet從您的界面構建器映射了您的testLabel? –

0

試試這個:

#interface SecondView:UIViewController 
{ 
    NSString *stringSecond; 
} 

@property(nonatomic, retain) NSString *str; 

在首先查看U必須創建這樣一個參考:

#import "SecondView.h" 

SecondView *detailViewController = [[SecondView alloc] initWithNibName:@"SecondView" bundle:nil]; 

detailViewController.stringSecond = @"Some string"; 
+0

這與上述答案是一樣的,但它仍然顯示爲空白。 – jaytrixz

+0

我認爲你沒有爲字符串變量分配內存。 detailViewController.stringSecond = [NSStringalloc] init]; detailViewController.stringSecond = @「一些字符串」; –

0

採取在應用程序委託一個變量像appdelegate.h

@interface appdelegate 
{ 
NSString *str1; 
} 

@property (nonatomic, retain) NSString *str; 

在.m文件中進行合成。

在編輯textfield(app del.str = textfield.text,即設置值)後設置文本。並使用相同的位置。

NSString *str = appdel.str(getting value); 
+0

對不起,我不太明白。 – jaytrixz

相關問題