Я добавил еще одну раскадровку для 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 с контроллером детализации, имеет тип «контроллер детального представления».
Теперь в меню, помимо всех других опций, есть первый вариант, используемый для возврата к первому контроллеру подробного представления (своего рода опция «Домой»), поэтому я также подключил главный контроллер просмотра с помощью контроллер детального просмотра, используя «Заменить».
Так что теперь происходит, что кнопка меню появляется, когда ориентация является портретной, но если я нажму на «домашнюю» опцию меню, кнопка исчезнет.
Эта кнопка должна быть видна на всех контроллерах различных деталей, которые я собираюсь создать, поэтому это очень важно.
Надеюсь, я сделал себе достаточно ясно.
Спасибо за ответ, но это не работает. – Aleph72
ли вы поместить этот код в viewDidLoad? – Nazir
Я попытался как в viewDidLoad и willHideViewController, и он не работает – Aleph72