2012-02-08 2 views
8

Я хочу UINavigationBar в верхней части моего UIWebView, но я хочу контролировать вручную название, кнопку «Назад», что делает кнопка «Назад» и т. Д. Другими словами, я никогда не хочу нажимать или всплывать , Я просто хочу изменить содержимое UINavigationBar, когда пользователь нажимает на веб-представление.с использованием UINavigationBar без UINavigationController

Где я нахожусь, я добавил UINavigationBar в свой superView и сделал его ростом 44 пикселя. Как установить заголовок, так как у меня нет параметра navigationItem? Как бы я установил поддельную кнопку назад?

Буду признателен за любые указатели. Я понимаю, что это довольно странно, что я делаю.

Спасибо :)

ответ

21

Ответ, если кто-то заинтересован, находится в ссылке класса UINavigationBar.

Когда вы используете навигационную панель в качестве автономного объекта, вы отвечаете за предоставление его содержимого . В отличие от других видов просмотров, вы не добавляете subviews в панель навигации напрямую. Вместо этого вы используете элемент навигации (экземпляр класса UINavigationItem) до . Укажите, какие кнопки или пользовательские представления вы хотите отображать. Навигационная система объект имеет свойства для указания видов слева, справа и центр панели навигации и для указания настраиваемой строки. строка.

Короче говоря, используйте UINavigationItem и примените его с помощью кнопки pushNavigationItem на UINavigationBar.

Я создал подкласс UINavigationBar под названием StaticNavigationBar, который затем могу загрузить с любым состоянием, поместив на него соответствующий UINavigationItem. Спасибо всем вашим ответам людям.

+4

+1 чувак ... хороший ответ –

+0

Почему у вас есть подкласс? – David

+0

Вы действительно не @David - на самом деле в эти дни я предпочитаю композицию над наследованием. –

-1

Вы можете иметь, что UINavigationBar как выход, а затем вы можете manupulate его, как вы хотите. Поэтому вам не нужно ссылаться на чей-то навигационный элемент. Это будет независимый (вид) объект на вашем представлении.

+0

У меня есть UINavigationBar на вид. Теперь, что я должен назвать, чтобы установить заголовок? Добавить кнопку «Назад»? –

+1

UINavigationBar имеет свойство backItem. Когда дело доходит до названия, вам нужно будет сделать это через свойство навигационного элемента, которое также можно добавить в IB или Storyboard в качестве выхода. Элемент навигации имеет свойство title. –

-1

Если вы не хотите, чтобы навигационная панель была как-то, вам придется сворачивать самостоятельно. Если вы в порядке со встроенными анимациями для подталкивания и выскакивания элементов (не путайте с push/pop of viewcontrollers) на панели, вы тогда установите свой UINavigationBarDelegate и будете использовать его методы для управления тем, как вещи нажимают/поп и т. Д.

+0

Мне нравится UINavigationBar, как он выглядит изначально. Я хочу знать, как программно установить кнопку заголовка и возврата в отсутствие контроллера uinavigation. До сих пор я только мог добавить его в представление и установить оттенок. Невозможно увидеть способы установки заголовка или добавления кнопок возврата. –

Смежные вопросы