2012-09-29 55 views
3

我有一個頁面(比如X)之前使用模型segue打開標籤欄控制器的標籤欄控制器。標籤欄控制器的第一個屏幕與X相同。故事板傳遞數據從視圖控制器到標籤欄與segue

我想將數據從X傳遞到標籤欄控制器的第一頁。

不久,我想從視圖控制器傳遞數據到標籤欄控制器頁面與故事板segue。有沒有這方面的任何方法?

這是解決方案;

locationsHome* vc = [[locationsHome alloc] init]; 
    UITabBarController* tbc = [segue destinationViewController]; 
    vc = (locationsHome *)[[tbc customizableViewControllers] objectAtIndex:0]; 
+0

它看起來像你回答你的問題。我以爲你問的是如何將數據傳遞給'segue.destinationViewController'這個更基本的問題,但我很高興看到你解決了你的問題。 – Rob

+0

您可以將解決方案作爲答案發布並接受它。 –

+0

對不起蒂亞戈,我是這個網站上的新手。我會做你的建議,並感謝你。 – SiberKorsan

回答

9

這就是我如何解決我的問題。您可以使用此方法將數據從ViewController傳遞到TabBarController。

使用prepareForSegue方法

locationsHome* vc = [[locationsHome alloc] init]; 
UITabBarController* tbc = [segue destinationViewController]; 
vc = (locationsHome *)[[tbc customizableViewControllers] objectAtIndex:0]; 

像這樣在這個代碼:

-(void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{ 

    NSString * segueIdentifier = [segue identifier]; 
    if([segueIdentifier isEqualToString:@"tabbarGo"]){ 

     locationsHome* vc = [[locationsHome alloc] init]; 
     UITabBarController* tbc = [segue destinationViewController]; 
     vc = (locationsHome *)[[tbc customizableViewControllers] objectAtIndex:0]; 

     etc... 

    } 
} 
+0

我已經添加了prepareForSegue方法。但是我未能使導航工作。任何想法爲什麼? – LZH

+0

對於目標視圖控制器,您應該使用UITabBarController,而不應該提供索引編號。 – SiberKorsan

0

添加屬性到目的地視圖控制器(子類的標籤欄控制器),然後在源視圖控制器,實現prepareForSegue將信息傳遞給目標控制器。然後,您可以讓目標視圖控制器的viewDidLoad對源視圖控制器的prepareForSegue中傳遞給它的數據執行操作。

2
//if sent to First Tab of Tab Bar Controller 
UITabBarController *tabBarController = segue.destinationViewController; 
UINavigationController *navigationController = (UINavigationController *)[[tabBarController viewControllers] objectAtIndex:0]; 
createTeamViewController *controller = (createTeamViewController *)[[navigationController viewControllers] objectAtIndex:0]; 

controller.userProfile = self.userProfile; 
0

對於雨燕2.2,我不得不修改接受的答案這樣

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) 
{ 
    if (segue.identifier == "userAccountSegue") 
    { 
     var firstTabViewController: UserAccountViewController = UserAccountViewController() 
     let tabViewController: UITabBarController = segue.destinationViewController as! UITabBarController 
     firstTabViewController = (tabViewController.customizableViewControllers![0] as! UserAccountViewController) 
     firstTabViewController.userObj = arrayForTable![selectedIndex] as? User 

    } 
} 

注:提示對上述代碼剪斷

  • 用戶是我模型對象存儲用戶信息
  • 我的視圖控制器SEGUE連接到TabViewContoller在故事板與賽格瑞=「userAccountSegue
相關問題