iOS: путаница в Интерфейсном Разработчике - PullRequest
2 голосов
/ 03 июля 2011

Бывают моменты, когда я настраиваю вещи в Интерфейсном конструкторе, и они отображаются так, как я ожидаю в моем приложении.В других случаях они появляются по-другому или нет вообще.И я не могу понять, почему это так.

Например, я представляю контроллер навигации в модальном виде.Но в Интерфейсном Разработчике, когда я пытаюсь установить заголовок Панели навигации, он игнорируется.Я понимаю, что заголовок панели навигации берет свое название от названия отображаемого представления, поэтому вам действительно нужно установить заголовок в этом подпредставлении, а не на панели навигации.Это имеет смысл при рассмотрении только кода, но тот факт, что IB позволяет вам, казалось бы, установить заголовок, очень запутан.Почему это позволяет?Просто чтобы он выглядел «правильно» в IB, даже если это не отражает истинное состояние приложения?

Аналогичный пример - добавление UIBarButtonItem на панель навигации.Опять же, в IB я могу добавить его, установить его название, стиль и т. Д. Но он не отображается.Я должен установить свойство .navigationItem.leftBarButtonItem в корневом контроллере представления, с которым инициализируется контроллер навигации.

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

Я что-то упустил?

1 Ответ

5 голосов
/ 03 июля 2011

Если для xib «Navigation Bar» установлено как «Top Bar» в «Simulated Metrics», заголовок не может быть установлен и кнопки не могут быть добавлены.Вы вручную добавили панель навигации в xib?Если вы сделали, именно поэтому IB позволяет вам установить заголовок и добавить элементы панели кнопок.Не следует вручную добавлять панели навигации только потому, что вы ожидаете, что они будут добавлены контроллером навигации в какой-то момент.Вы должны использовать смоделированные метрики.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...