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