Представление не появляется через pushViewController в xcode 6.2
Я только что обновился до xcode 6.2, и у меня возникла проблема с отображением вновь созданного представления (в контроллере представления под названием myController), вызываемого через:
[self.navigationController pushViewController:myController animated:YES];
viewDidLoad
а также viewWillAppear
оба в порядке myController
(т.е. NSlog
вывод выводится в консоли), но по какой-то причине интерфейс созданного XIB остается пустым. Управление навигацией работает и находится над пустым экраном. Это происходит при запуске на симуляторе и на устройстве.
У старых контроллеров представления нет этой проблемы, когда они вызываются одинаковыми средствами в одном приложении. Интересно, что динамически сгенерированное представление отображается, но новое представление, созданное в конструкторе интерфейса, остается пустым. Я попытался скопировать старый XIB и создать новый, но интерфейс не будет отображаться (простой экран с одной кнопкой).
Все шаги настройки нового представления в корневом контроллере были выполнены, просто кажется, что XIB не будет отображаться. В консоли нет абсолютно никаких сообщений об ошибках, указывающих, что что-то не так.
Любые идеи, обходные пути, файлы журналов для проверки? (кроме использования более старой версии xcode).
Спасибо
2 ответа
Если вы скопировали представления из более старого файла XIB, который не использовал AutoLayout, а новый XIB/Storyboard использует, скорее всего, перепутаны ограничения макета. Проверьте, использует ли ваша текущая XIB/Storyboard Autoayout, и либо отключите его, либо установите его правильно для всех представлений и подпредставлений.
РЕДАКТИРОВАТЬ:
Для нового XIB, содержащего вашу кнопку, убедитесь, что кнопка авторазметки не отмечена в инспекторе файлов, чтобы убедиться, что вы не используете AutoLау -
Создатель потока здесь....... Я в итоге получил его для отображения, явно вызвав
myController = [[myController alloc] init];
до
[self.navigationController pushViewController:myController animated:YES];
Для предыдущих контроллеров представления, распределение, кажется, было сделано неявно. Не уверен, как / почему. Спасибо всем, кто ответил.