Заголовки заголовков iPad. Navbars или панели инструментов?

Я вижу кучу приложений для iPad с действительно классными заголовками. Кажется, это сочетание панели навигации и панели инструментов. Обычно у них есть кнопка "Назад" и название, а также другие кнопки. И navbar поддерживает только левый элемент, правый элемент и вид заголовка. И панель инструментов на самом деле не поддерживает обратные кнопки или заголовки.

Итак, как мне реализовать эти богатые навигаторы со многими кнопками в моем приложении, управляемом UINavigationController?

Ответы

Ответ 1

Вы можете получить этот эффект, положив UIToolbar в свой UINavigationItem так:

self.navigationItem.title = @"My Title";    


UIToolbar *tb = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 100, 44)];
tb.items = [NSArray arrayWithObjects:button1,button2,button3,nil];

UIBarButtonItem *tbItem = [[UIBarButtonItem alloc] initWithCustomView:tb];
self.navigationItem.rightBarButtonItem = tbItem;

[tbItem release];
[tb release];

source: этот блог через Google.

Ответ 2

Большинство из этих приложений используют UISplitViewController на своем базовом уровне, а UIToolbar - в верхней части большого правого подробного представления для контроллера разделенного представления. Левое представление обеспечивается с помощью UINavigationController. Это дает вам элементы управления навигации на панели инструментов слева, а также несколько кнопок панели инструментов справа. Это отдельные столбцы в верхней части экрана, но они могут отображаться вместе, если для них используется один и тот же стиль.

Для примера, как это сделать, вы можете загрузить исходный код в мое универсальное приложение для iPhone/iPad Molecules и посмотреть внутри SLSMoleculeAppDelegate, где я строю контроллер разделенного представления в коде и SLSMoleculeiPadRootViewController, где я настраивал панель инструментов и ее элементы.

Ответ 3

Вы также можете скрыть контроллер навигации с помощью self.navigationController.navigationBarHidden = YES; . Но в то же время добавьте кнопку "Назад" слева от панели инструментов, которая вызовет popviewcontrollers