От начального View Controller, как передать acriss на UITabBarController и использовать prepareForSegue
Вот установка:
1) Single View Controller - исходный Cobntroller = с кнопкой.
2) Контроллер панели вкладок с 1 представлением контроллера - метка
Когда я нажимаю кнопку, она переходит к представлению вкладок.
Теперь я хочу использовать prepareForSegue, чтобы передать строку, чтобы обновить метку 1 View Controller внутри контроллера панели вкладок.
Когда я делаю это, я получаю
msgstr "нераспознанный селектор отправлен на экземпляр".
Так что я могу перейти к Tab View Controller.
Однако я не могу ссылаться на ViewController внутри вкладки.
Как я могу это исправить?
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" - это идентификатор раскадровки (без кавычек), введенный в инспектор идентификации (3-й значок справа) для TabViewController. Вы можете изменить это, чтобы соответствовать тому, что вы ввели.