2011-09-20 61 views

回答

1

是的,這是可能的。事實上,有幾種方法可以做你想做的事。從描述你想要做什麼的方式來看,我會建議看看NSNotificationCenter。基本上,當你設置視圖控制器時,第二個和第三個視圖控制器可以註冊以接收某種類型的通知。當文本字段的內容改變時,第一個視圖控制器將「發佈」通知。第二和第三會收到通知,然後更新其內容。

編輯:

//register for a notification. Whenever the notification is sent, mySelector: is called on self (probably done whe thn second and third controller are loaded) 
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(mySelector:) name:@"NotificationName" object:nil]; 

//send a notification (done when the first view controllers action is finished) 
[[NSNotificationCenter defaultCenter] postNotificationName:@"NotificationName" object:obj]; 
+0

你能以某種方式給我一個這個編碼的快速例子嗎? – Tyler

+0

如果沒有生病了解如何使用NSNotificationCenter – Tyler

+0

我發佈了你可能想要使用的兩行。還要確保removeObserver:當你釋放第二個和第三個視圖控制器時。 –

0

另一種方法是把應用程序代理的幫助。在appdelegate中創建一個屬性,例如userName。在您想要訪問的視圖中導入appdelegate類。使用其屬性存儲在一個視圖中,並在另一個視圖中檢索它。你可以像

((yourAppDelegate*)[[UIApplication sharedApplication] delegate]).userName = @"Set Value"; 

達到的appdelegate單實例屬性在另一個視圖的viewWillAppear中:

self.greetingLabel.text = ((yourAppDelegate*)[[UIApplication sharedApplication] delegate]).testString; 

可能不是最完美的解決方案,只是另一種方式來實現的結果。

+0

好吧生病吧試試吧謝謝你! – Tyler

0

如果我正確理解您的問題,請在此SO 問題上籤出答案。

相關問題