1

这是设置:

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

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

当我按下按钮时,它将转到选项卡视图。

现在我想使用 prepareForSegue 传递一个字符串来更新标签栏控制器内的 1 视图控制器的标签。

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

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

所以我驾驶到选项卡视图控制器。

但是我无法在选项卡中引用 ViewController。

我怎样才能解决这个问题 ?

4

1 回答 1

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];
}

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

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

于 2013-12-02T16:38:41.167 回答