Представление не появляется через 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];

Для предыдущих контроллеров представления, распределение, кажется, было сделано неявно. Не уверен, как / почему. Спасибо всем, кто ответил.

Другие вопросы по тегам