Я понимаю концепцию в AppDelegate.
Основы выглядят следующим образом:
let mainStoryboard: UIStoryboard = UIStoryboard(name: “Main”, bundle: nil)
var mainViewController = mainStoryboard.instantiateViewControllerWithIdentifier(
“MainViewController”) as! UIViewController
var navController = UINavigationController(rootViewController: mainViewController)
self.window?.rootViewController = navController
self.window?.makeKeyAndVisible()
Это успешно сделает ваш mainViewController навигационным контроллером и будет работать так.
Я не хочу делать это в AppDelegate.
У меня есть UIViewController с именем A, который не содержится в UINavigationController. Что я делаю сейчас из A, так это performSegueWithIdentifier
в другой UIViewController с именем B. Я хочу программно сделать B содержащимся в UINavigationController. Я не хочу добиваться этого в раскадровке. Это нужно делать программно.
Я предполагаю, что мне придется использовать mainStoryboard.instantiateViewControllerWithIdentifier(...)
для создания экземпляра B, а затем обернуть его в UINavigationController где-то в A (предпочтительно там, где я планирую перейти к B). Тогда я доберусь до B каким-то другим способом, кроме performSegueWithIdentifier
? Потому что, если я выполню переход, он не перейдет к B, который я завернул в UINavigationController.
Я надеюсь, что это было не слишком сложно, но я могу предложить детали, если что-то не имеет смысла.