从最初的View Controller如何将acriss转换为UITabBarController并使用prepareForSegue

时间:2013-12-02 16:06:35

标签: ios ipad ios7 uitabview

以下是设置:

1)单视图控制器 - 初始Cobntroller =带按钮。

2)带有1个视图控制器的标签栏控制器控制器 - 标签

当我按下按钮时,它将转到标签视图。

现在我想使用prepareForSegue传递一个String来更新Tab Bar Controller中1 View Controller的标签。

当我这样做时,我得到了一个

“无法识别的选择器已发送到实例”。

所以我驾驶室切换到标签视图控制器。

但是我无法在Tab中引用ViewController。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

问题是你无法从单个视图转到TabBarController。相反,使用这样的代码:

- (IBAction)setupTapped:(id)sender {
    static NSString *tabViewControllerIdentifier = @"SetupViewController";  


    UIViewController *controller = [self.storyboard instantiateViewControllerWithIdentifier:tabViewControllerIdentifier];
    AppDelegate *app = (AppDelegate *)[[UIApplication sharedApplication] delegate];

    UIViewController *currentController = app.window.rootViewController;
    app.window.rootViewController = controller;
    app.window.rootViewController = currentController;

    [UIView transitionWithView:self.navigationController.view.window
                      duration:0.75
                       options:UIViewAnimationOptionTransitionFlipFromRight
                    animations:^{
                        app.window.rootViewController = controller;
                    }
                    completion:nil];
}

那将在控制器之间转换。您可以更改动画类型以适合您的目的。这是使用options参数设置的;目前正在显示UIViewAnimationOptionTransitionFlipFromRight。

“SetupViewController”是为TabViewController输入到身份检查器(右起第3个图标)的Storyboard ID(不带引号)。您可以更改此项以匹配您输入的内容。