2012-02-22 48 views
2

我正在構建一個界面,我可以在其中添加日曆中的事件。 在AddAEventViewController我有按鈕來設置開始時間,持續時間和重複。 每次按下按鈕時,視圖控制器都會提供一個UIDatePicker,您可以在其中設置時間。挑選的組件不是顯示在UITextField中。現在,當我按下完成按鈕時,它將關閉ModalViewController,然後回到我的AddAEventViewController。在持續時間旁邊例如是一個UILabel,我想在這裏顯示剛剛選擇的文本框和顯示的持續時間。 如何從另一個ViewController訪問AddEventViewController?我嘗試在那裏分配和初始化一個新的,但它沒有工作!如何在UILabel中顯示UITextField的文本?

- (IBAction)pressedDoneButton:(id)sender { 

_mainAddWishViewController.labelDuration.text=textFieldDuration.text; 

[self dismissModalViewControllerAnimated:YES]; 

}

有人可以幫我請! 謝謝朱爾斯

回答

1

有幾種方法可以做到這一點,他們都記錄在here。閱讀和理解它們將在iOS軟件開發中幫助你很多。

1

有很多方法可以做到這一點。這是一個非常簡單的例子。

在「child」viewController中,添加一個委託屬性並將其設置爲父視圖控制器。

在完成按鈕的處理程序

然後,執行類似:

[self.delegate performSelector:@selector(didComplete) withObject:self] 

在父視圖控制器,如下定義的方法:

- (void) didComplete: (YourSubViewControllerClass *) sender 
{ 
    self.labelDuration.text = sender.textFieldDuration.text 
} 

基本上,這實現了一個非正式的協議,由此subViewController通知主視圖控制器它已完成並且輸入值可用。

請注意,如果您取消了subViewController,請不要發送didComplete消息。