У меня есть представление (и соответствующий контроллер представления) в моем приложении для iPhone, которое позволяет пользователю редактировать настройки приложения. Это представление доступно через меню (представление таблицы). Я использую pushViewController в своем подклассе UIViewController, чтобы показать его. Когда я делаю это, он выглядит так, как я и ожидал - панель навигации появляется сверху XIB, и пустое пространство, которое я оставил там в XIB, занято.
Я также иногда показываю, что настройки отображаются как модальные, используя presentModalViewController. Когда я делаю это, верхняя часть xib начинается с нижней части навигационной панели, а не под ней.
В документации сказано, что presentModalViewController изменит размер представления, чтобы соответствовать ему, поэтому я мог видеть, что это ожидаемое поведение. Однако для меня это нежелательное поведение.
Я могу обойти это, настроив контроллер представления настроек, чтобы он не отображал навигационную панель, но в верхней части экрана есть странное пустое место.
В идеале я хотел бы использовать один и тот же xib в обеих этих ситуациях. Однако, может быть, это не лучшая практика? Как вы, ребята, обычно повторно используете xib?
Я думал, что, может быть, я мог бы заставить контроллер представления сдвинуть все контроллеры вверх, если он находится в модальном режиме, но я бы хотел что-то лучше, если он доступен.