От начального 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. Вы можете изменить это, чтобы соответствовать тому, что вы ввели.

Другие вопросы по тегам