Разбирам концепцията в 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 NavigationController и ще функционира по този начин.
Не искам да правя това в AppDelegate.
Имам UIViewController, наречен A, който не се съдържа в UINavigationController. От A това, което правя сега, е performSegueWithIdentifier
към друг UIViewController, наречен B. Искам програмно да направя B, съдържащ се в UINavigationController. Не искам да постигна това в Storyboard. Това трябва да стане програмно.
Предполагам, че ще трябва да използвам mainStoryboard.instantiateViewControllerWithIdentifier(...)
, за да инстанцирам B и след това да го увия в UINavigationController някъде в A (за предпочитане там, където планирам да премина към B). След това стигам до B по някакъв начин различен от performSegueWithIdentifier
? Защото, ако изпълня прехода, тогава няма да отиде до B, който увих в UINavigationController.
Надявам се, че не беше твърде сложно, но мога да предложа подробности, ако нещо няма смисъл.