UINavigationItem titleView "игнорируется, если установлен leftBarButtonItem"? - PullRequest
11 голосов
/ 13 марта 2012

В документации к свойству titleView UINavigationItem указано :

"Это свойство игнорируется, если leftBarButtonItem не равно nil."

Однако в моем тестировании я установил свойства titleView и leftBarButtonItem, и они оба выглядят нормально.Я тестировал на всех симуляторах в моем Xcode: 4.3, 5.0 и 5.1.Кто-нибудь знает, является ли документация неправильной или она верна в некоторых старых версиях (например, 4.2, 3.x), которые я не смог протестировать?

Ответы [ 5 ]

8 голосов
/ 30 августа 2012

Проверьте документацию для свойства leftBarButtonItems , там написано:

Если недостаточно места для отображения всех элементов в массиве, те, которые будут перекрытие вида заголовка (если имеется) или кнопки на правой стороне панели не отображаются.

Итак, то, что сказано для titleView, вероятно, неверно.

3 голосов
/ 01 июля 2012

Я думаю, что документация неверна, и вы должны подать отчет об ошибке.

0 голосов
/ 03 января 2014

Я тоже столкнулся с этим. В Моей специфической проблеме появятся и заголовок, и левый элемент. Однако, если бы у меня была кнопка «Назад», мой заголовок исчез бы при нажатии и использовал заголовок по умолчанию. Если у меня есть пользовательский набор uibuttonitem слева, он работает нормально. Так что, похоже, это связано с кнопкой возврата. В итоге я решил, установив атрибуты заголовка, а не настраивая представление.

0 голосов
/ 31 августа 2013

Я проверял это на iOS6.1 и iOS7.У моего UINavigationItem был ненулевой titleView и leftBarButtonItem, и были видны и titleView, и leftBarButtonItem.Я подал радар.

0 голосов
/ 18 июня 2013

Я просто наткнулся на это и нашел то же самое, что и вы. Я также отметил, что документация для UINavigationItem последний раз обновлялась в 2011 году, в то время как UINavigationBar получал обновления как в iOS 5, так и в 6, поэтому возможно, что это поведение изменилось с момента последнего обновления документа UINavigationItem.

Хотя очень запутанно.

Заметил это и в справке UINavigationController:

"Контроллер навигации обновляет середину панели навигации следующим образом:

...

Если новый контроллер представления верхнего уровня имеет настраиваемый вид заголовка, панель навигации отображает этот вид вместо представления заголовка по умолчанию. Чтобы указать пользовательский вид заголовка, установите свойство titleView элемента навигации контроллера представления. "

Так как по определению есть элемент leftBarByButton (кнопка «Назад»), когда вы находитесь в режиме без полномочий root, это наверняка кажется ошибкой в ​​документации UINavigationItem

...