2012-09-29 50 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
相关问题