Вызов View или ViewController в обход storyboard iOS objective-c

Рейтинг: 0Ответов: 1Опубликовано: 19.03.2015

Имеется NavigationController, в проекте используется Storyboard.

Возникла потребность вызвать из любого окна (пока что их ок 10, но количество увеличится примерно вдвое) некое окно - основное меню с возможностью навигации. Очевидно, что рисовать путь от каждого окна в storyboard к окну меню - не есть хорошо. Откуда и возникла потребность вызвать окно (push) иными средствами, нежели performSegueWithIdentifier.

Пробовал использовать конструкцию типа:

Menu *menu = [[Menu alloc] init];
[self.navigationController pushViewController:menu animated:YES];

И даже заходит в viewDidLoad вызываемого класса, но после - вылетает с SIGABRT.

P.S. По SplitViewController не найдется ли чего интересного и желательно на русском?

Ответы

▲ 2

Задайте для UIViewController storyboardID (это на той же вкладке, где и класс задается).

Дальше в коде, где это необходимо:

if let vc = storyboard?.instantiateViewControllerWithIdentifier("MyViewControllerIdentifier") as? MyViewController {
    navigationController?.pushViewController(vc, animated: true)
    /* ну или presentViewController(vc, animated: true, completion: nil) */
}

Да, если что, на Objective-C:

MyViewController *vc = [self.storyboard instantiateViewControllerWithIdentifier:@"MyViewControllerIdentifier"];
[self.navigationController pushViewController:vc animated: true];