2016-07-25 6 views
3

Я использую раскадровку и xib в swift 3 (iOS 10 и XCode 8). И когда я загружаю любой контроллер View с помощью xib, приложение терпит крах.pushViewController не работает в swift 3

Вот код, я использую, чтобы загрузить View Controller на кнопки действий:

let serverViewController = ServerViewController(nibName: "ServerViewController", bundle: nil) 
self.navigationController?.pushViewController(serverViewController, animated: true) 
+0

Проверьте, что вы встроили свой «self» viewController в NavigationViewController – Andrew

+1

Журналы об исключениях? –

+0

@ В настоящее время viewController встроен с NavigationViewController. – raghu829

ответ

0

Если ServerViewController nibName правильно, то проблема будет то, что вы пытаетесь протолкнуть навигации контроллера. Я имею в виду, что ServerViewController должен быть подклассом UINavigationController, и в этом случае вы не можете нажать навигационный контроллер.

+0

спасибо за ответ Варун. Имя nibName верное. Я нашел решение. Фактически, я преобразовал свой проект из swift 2.0 в swift 3.0 с использованием XCode8 beta. Так что xcode 8 beta не конвертировал мои xib-файлы, совместимые с swift 3.0. XCode8 beta конвертирует только файлы таблицы и .swift. Поэтому, когда я удалял xib и воссоздавался с тем же именем, чем работал. – raghu829

Смежные вопросы