Как изменить размер UINavigationController в редакторе раскадровки

Когда я хочу изменить размер UIViewController в окне редактора раскадровки, я делаю:

  • Я установил размер «freeForm» в инспекторе атрибутов UIViewController.
  • Я выбираю вид и изменяю его размер с помощью инспектора размеров.

после этого размер uiViewController изменяется в окне раскадровки.

Затем я выбираю контроллер представления, нажимаю: изменить> встроить в> Контроллер навигации, и проблема в том, что контроллер навигации имеет полный размер, а не тот же размер, что и UIViewController. Я не нахожу, как изменить размер этого навигационного контроллера.


person Anthony    schedule 08.02.2012    source источник
comment
Какова твоя цель? Что ты пытаешься сделать? Как вы знаете, приложения для iOS работают в полноэкранном режиме, и если ваш навигационный контроллер является начальной точкой вашего приложения, оно не может запускаться в окне меньшего размера, чем полноэкранный режим.   -  person Canopus    schedule 08.02.2012
comment
У меня точно такая же проблема с созданием всплывающих окон для iPad. Всплывающие окна покрывают только (обычно) небольшую часть экрана. В раскадровке вы можете легко изменить размер контроллеров представления, но не контроллеров навигации. Это настоящая боль, поскольку вы не можете просто добавить панель навигации в свой контроллер представления, если используете статические ячейки табличного представления, которые должны находиться в UITableViewController.   -  person MrAlek    schedule 02.03.2012


Ответы (2)


Вы не изменяете размер NavigationController — это не ViewController. Он управляет навигацией ViewControllers. Вы указываете начальный ViewController (тот, который вы внедрили в него, будет начальным viewController по умолчанию). Затем вы создаете переходы в другие ViewController.

person Peter Kelly    schedule 06.03.2012
comment
На самом деле UINavigationController является подклассом UIViewController.. так что это не ViewController, это неправильно. - person petehare; 09.04.2014

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

person Justin Driscoll    schedule 14.02.2013