2017-02-21 9 views

ответ

0

две возможности. Если у вас нет навигационного контроллера (я обычно делаю), добавьте эту строку перед закрывающей скобкой:

self.present(vc, animated:true, completion:nil) 

Если у вас есть навигационный контроллер добавить вместо этого:

self.navigationController?.pushViewController(vc, animated: true) 

Edit: (для отладки, есть ли ваш навигационный контроллер)

если вы изменили? к! и вы получаете исключение при его запуске, тогда навигационного контроллера там нет. укажите код, в котором вы определили навигационный контроллер. Я хотел бы сделать это в AppDelegate, как это:

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { 
     let startupVC = SomeViewController() 
     self.window! = UIWindow(frame: UIScreen.main.bounds) 
     let mainNavConn = UINavigationController(rootViewController: startupVC) 
     self.window!.rootViewController = mainNavConn 
     self.window!.backgroundColor = UIColor(red: 1.0, green: 0.0, blue: 0.5, alpha: 1.0) 
     self.window!.makeKeyAndVisible() 
     return true 
     } 
+0

У меня есть контроллер навигации. Добавлен код, который вы поделили, но все еще не открыли контроллер. –

+0

если вы измените? к! и вы получаете исключение при его запуске, тогда навигационного контроллера там нет. укажите код, в котором вы определили навигационный контроллер. Я бы сделал это в AppDelegate следующим образом: – Mozahler

+0

я не определял навигационный контроллер в любом месте –

1

Вы могли бы на самом деле пройти через раскадровки, щелкните правой кнопкой мыши UIBarButtom, перетащив его подключение к контроллеру вида вы хотите, чтобы сделать переход произойдет. Как только вы отпустите клик на контроллере представления, появится интерфейс с вопросом о том, какой тип segue вы хотели бы использовать. Затем вы можете выбрать детали шоу. Это позволит вам создать сеанс без ввода кода.