Мои приложения любит это:как показать barButtonItem при использовании splitViewController: willChangeToDisplayMode: в iOS8
UISplitViewController:
the master:NavigationController1->UITableViewController
the detail:NavigationController2->UIWebViewController
Я хочу показать barButtonItem когда вид идет на портретном режиме на IPad и я знаю, как реализовать он в iOS7 от willHideViewController:
-(void)splitViewController:(UISplitViewController *)svc willHideViewController:(UIViewController *)aViewController withBarButtonItem:(UIBarButtonItem *)barButtonItem forPopoverController:(UIPopoverController *)pc{
barButtonItem.title = @"Course";
self.navigationItem.leftBarButtonItem = barButtonItem;
}
-(void)splitViewController:(UISplitViewController *)svc willShowViewController:(UIViewController *)aViewController invalidatingBarButtonItem:(UIBarButtonItem *)barButtonItem{
if (barButtonItem == self.navigationItem.leftBarButtonItem) {
self.navigationItem.leftBarButtonItem = nil;
}
}
Тем не менее, этот метод является устаревшим в прошивкой 8, и я пытался использовать:
-(void)splitViewController:(UISplitViewController *)svc willChangeToDisplayMode:(UISplitViewControllerDisplayMode)displayMode{
if (displayMode == UISplitViewControllerDisplayModePrimaryHidden) {
self.navigationItem.leftBarButtonItem = svc.displayModeButtonItem;
}else{
self.navigationItem.leftBarButtonItem = nil;
}
}
Этот метод работает только при изменении режима отображения, но не при первом запуске приложения с ориентацией на портрет. Итак, как показать barButtonItem при первой загрузке приложения с ориентацией на портрет.
спасибо, он работает, но есть символ «<» рядом с названием «Show master». – gao6708
@ gao6708 Лучшее решение, которое я нашел для этого, это если вы добавите свой собственный UIBarButtonItem в панель навигации. Смотрите: [http://stackoverflow.com/a/26197227/4150105](http://stackoverflow.com/a/26197227/4150105) Это в Swift, но вы должны легко его перевести. Не забудьте настроить ту же кнопку в 'splitViewController: willChangeToDisplayMode:' – kaischo
спасибо, получите! 'self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithTitle: @" Course "style: self.splitViewController.displayModeButtonItem.style target: self.splitViewController.displayModeButtonItem.target action: self.splitViewController.displayModeButtonItem.action];' – gao6708