4

我在标签栏控制器之前有一页(比如 X),它使用模型 segue 打开标签栏控制器。标签栏控制器的第一个屏幕也与 X 相同。

我想将数据从 X 传递到标签栏控制器的第一页。

很快,我想将数据从视图控制器传递到带有情节提要 segue 的标签栏控制器页面。有什么方法吗?

这是解决方案;

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

4 回答 4

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...

    }
}
于 2012-10-01T07:14:22.693 回答
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;
于 2013-07-24T07:01:54.210 回答
0

向目标视图控制器(子类标签栏控制器)添加一个属性,然后在源视图控制器中,实现prepareForSegue将信息传递给目标控制器。然后,您可以让目标视图控制器对源视图控制器viewDidLoad中传递给它的数据采取行动。prepareForSegue

于 2012-09-29T12:33:11.500 回答
0

对于Swift 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 使用 segue =“ userAccountSegue ”连接到情节提要中的 TabViewContoller
于 2016-06-06T13:36:57.137 回答