这是设置:
1) 单视图控制器 - 初始 Cobntroller = 带有按钮。
2) 带有 1 个视图控制器的标签栏控制器控制器 - 标签
当我按下按钮时,它将转到选项卡视图。
现在我想使用 prepareForSegue 传递一个字符串来更新标签栏控制器内的 1 视图控制器的标签。
当我这样做时,我得到一个
“无法识别的选择器发送到实例”。
所以我驾驶到选项卡视图控制器。
但是我无法在选项卡中引用 ViewController。
我怎样才能解决这个问题 ?
问题是您不能从单个视图转到 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(不带引号)。您可以更改它以匹配您输入的内容。