2013-05-29 2 views
0

Я добавил еще одну раскадровку для iPad в свое приложение, пытаясь сделать свое первое универсальное приложение.Всплывающая кнопка не видна, когда splitview находится в портретной ориентации

Я запускаю UISplitViewController, где у меня есть меню слева и контроллер детали справа.

Я настроил панель навигации в подробном представлении, и теперь всплывающая кнопка (та, которая должна показывать меню, когда iPad находится в портретной ориентации) не отображается.

Это код, я использую, чтобы настроить панель навигации в viewDidLoad:

UIImage *navBarImg = [UIImage imageNamed:@"someimage"]; 
[self.navigationController.navigationBar setBackgroundImage:navBarImg forBarMetrics:UIBarMetricsDefault]; 
UIImage *logo = [UIImage imageNamed:@"logo"]; 
self.navBar.titleView = [[UIImageView alloc] initWithImage:logo]; 

Затем в методе делегата для представления разделенного «willHideViewController», я пытаюсь настроить кнопки меню :

UIImage *menuBtn = [UIImage imageNamed:@"menu"]; 
menuBtn = [menuBtn resizableImageWithCapInsets:UIEdgeInsetsMake(0.0, 4.5, 0.0, 4.5)]; 
barButtonItem.image = menuBtn; 
barButtonItem.title = NSLocalizedString(@"Menu", nil); 
[self.navigationItem setLeftBarButtonItem:barButtonItem animated:YES]; 
self.masterPopoverController = popoverController; 

Я попытался удалить панель навигации и настройки кнопки меню, и появится кнопка. Что случилось с моим кодом?

EDIT:

Следуя совету Назира, я добавил следующий код в мой метод viewDidLoad:

UIImage *menuBtn = [UIImage imageNamed:@"menu"]; 
menuBtn = [menuBtn resizableImageWithCapInsets:UIEdgeInsetsMake(0.0, 4.5, 0.0, 4.5)]; 
[self.navigationItem.leftBarButtonItem setBackgroundImage:menuBtn forState:UIControlStateNormal barMetrics:UIBarMetricsDefault]; 
[self.navigationItem.leftBarButtonItem setTitle:@""]; 

Я забыл, что кнопка не нужен титул, но если я не установите его, кнопка не появится.

Теперь проблема в том, что я что-то испортил с помощью раскадровки. При запуске приложения я хочу увидеть меню слева (MasterViewController) и табличное представление с некоторыми данными справа (DetailViewController).

Таким образом, связь segue, соединяющая контроллер Split View Control с контроллером детализации, имеет тип «контроллер детального представления».

Теперь в меню, помимо всех других опций, есть первый вариант, используемый для возврата к первому контроллеру подробного представления (своего рода опция «Домой»), поэтому я также подключил главный контроллер просмотра с помощью контроллер детального просмотра, используя «Заменить».

Так что теперь происходит, что кнопка меню появляется, когда ориентация является портретной, но если я нажму на «домашнюю» опцию меню, кнопка исчезнет.

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

Надеюсь, я сделал себе достаточно ясно.

ответ

0

Если у меня есть то, что вы хотите сделать, то добавьте фон в topBatButton, чтобы вы могли сделать так: Сделайте это в DetailViewController.м

UIImage *menuBtn = [UIImage imageNamed:@"someimage"]; 

Настройка изображения для элемента панели:

[self.navigationItem.leftBarButtonItem setBackgroundImage:menuBtn forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];

Установка заголовка для элемента панели:

[self.navigationItem.leftBarButtonItem setTitle:@"sometitle"];

+0

Спасибо за ответ, но это не работает. – Aleph72

+0

ли вы поместить этот код в viewDidLoad? – Nazir

+0

Я попытался как в viewDidLoad и willHideViewController, и он не работает – Aleph72

0

Вы не можете иметь titleView И элемент leftBarButton (если я повторно объявление Документы справа)

В соответствии с Документами:

Titleview: «Если установить это свойство пользовательского заголовок, он отображаются вместо названия. Это свойство игнорируется, если leftBarButtonItem не равен нулю.»

SO Я предполагаю, что обратное тоже правда

+0

Это правда только для iPad? Потому что для iPhone я использую тот же код, и он работает. – Aleph72

+0

Жаль не знаю, но splitview для iPad только в любом случае, поэтому я мог представить себе различия между двумя устройствами здесь. –

+0

Я попытался прокомментировать заголовок заголовка навигационной панели, но это n пока не работает. – Aleph72

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