2013-07-29 46 views
2

我在用戶註冊活動的標籤欄控制器中有兩個選項卡。我需要從「第一個標籤」獲得一些UITextFields的值,一旦用戶點擊「第二個標籤」中的註冊按鈕。訪問另一個視圖的元素(iOS - 標籤欄控制器)

那麼,是否有可能直接訪問另一個視圖中的文本字段?或者我可以做什麼來解決?

使用委託/通知似乎是另一種方式,但經歷了與委託相關的所有文章/問題,但無法想出如何將其實現到我的代碼。如果是這樣,請給我們分享一篇關於如何實施代表的好文章。

在此先感謝。

+0

嗯,這可能不是完美的解決方案,但我想它會使用NSUserDefaults ..只需將它保存在第一個選項卡中,並且一旦您單擊第二個選項卡中的按鈕,只需訪問NSUserDefaults – Yanchi

+0

是的,那是第一個解決方案想出了,但事實證明我不能實現一個委託來使用didSelectViewController作爲這裏:http://stackoverflow.com/questions/10891182/how-to-implement-didselectviewcontroller – snns

+0

盧卡斯的解決方案看起來最好,但是我在說什麼關於使用NSUserDefaults。因此,在第一個控制器中,您可以將值保存爲[[NSUserDefaults standardUserDefaults] setObject:yourTextField.text forKey:@「yourVariable」];然後同步它[[NSUserDefaults standardUserDefaults] synchronize];在你的第二個標籤視圖中,你只要檢查值是否像if [[NSUserDefaults standardUserDefaults] objectForKey:@「yourVariable」]){yourSecondTextField.text = [[NSUserDefaults standardUserDefaults] objectForKey @「yourVariable];} else {yourSecondTextField .text = @「」} – Yanchi

回答

4

您可以通過標籤欄內viewControllers屬性self.tabBarController訪問其他視圖控制器。

在您的註冊按鈕的操作方法,secondTab的視圖控制器裏面,只是這樣做:

UIViewController1 *myViewController = [self.tabBarController.childViewControllers objectAtIndex:0]; 
something = myViewController.textField; 

注意,索引「0」,那是因爲我假設這是真的,你要第一個標籤訪問。如果您願意,可以換另一個索引。

請給出一些反饋,如果這就是你要找的。

+0

非常感謝,你的答案definetely解決了問題。爲延誤道歉,我以爲你投了票,但似乎無法做到這一點。 – snns

相關問題