我試圖讓輸入一個標籤欄的一頁上的東西到另一個...例如 第1頁標籤欄 標籤文本字段(插入東西) 生成...... 標籤欄的第2頁 哎... ....... 第3頁標籤欄 哎...什麼都插入是否可以將標籤欄中的一個頁面的操作連接到另一個頁面?
請讓我知道,如果這樣的事情是可能的...先謝謝你!
我試圖讓輸入一個標籤欄的一頁上的東西到另一個...例如 第1頁標籤欄 標籤文本字段(插入東西) 生成...... 標籤欄的第2頁 哎... ....... 第3頁標籤欄 哎...什麼都插入是否可以將標籤欄中的一個頁面的操作連接到另一個頁面?
請讓我知道,如果這樣的事情是可能的...先謝謝你!
是的,這是可能的。事實上,有幾種方法可以做你想做的事。從描述你想要做什麼的方式來看,我會建議看看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];
另一種方法是把應用程序代理的幫助。在appdelegate中創建一個屬性,例如userName。在您想要訪問的視圖中導入appdelegate類。使用其屬性存儲在一個視圖中,並在另一個視圖中檢索它。你可以像
((yourAppDelegate*)[[UIApplication sharedApplication] delegate]).userName = @"Set Value";
達到的appdelegate單實例屬性在另一個視圖的viewWillAppear中:
self.greetingLabel.text = ((yourAppDelegate*)[[UIApplication sharedApplication] delegate]).testString;
可能不是最完美的解決方案,只是另一種方式來實現的結果。
好吧生病吧試試吧謝謝你! – Tyler
如果我正確理解您的問題,請在此SO 問題上籤出答案。
你能以某種方式給我一個這個編碼的快速例子嗎? – Tyler
如果沒有生病了解如何使用NSNotificationCenter – Tyler
我發佈了你可能想要使用的兩行。還要確保removeObserver:當你釋放第二個和第三個視圖控制器時。 –