UISplitViewController не вызывает методы делегата при нажатии new detailView
Я настраиваю раскадровку на основе приложения Master-Detail, встраиваю детальный вид в навигационный контроллер и добавляю новый объект table view controller, который буду использовать в качестве второго контроллера детального вида.
Затем я толкаю новый контроллер детального вида со следующим кодом (вместо segue, потому что я толкаю и корневой вид и контроллер детального вида одновременно. Отображается только код детального представления).
// Push the detailView view controller:
NewClass *newViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"test"];
newViewController.navigationItem.hidesBackButton = YES;
self.splitViewController.delegate = newViewController;
[self.detailViewController pushViewController:newViewController animated:YES];
Это работает отлично, за исключением того, что методы делегата splitView никогда не вызываются до или после push-запроса. Если я делаю это в портретном режиме, после того, как он нажимает detailViewController, кнопка для выпадения всплывающего окна masterView не появляется, пока я не повернусь в альбомный режим, а затем обратно в портретный режим.
Как я могу вызвать методы делегата willHideViewController/willShowViewController split view controller или вручную вызвать их?
1 ответ:
Итак, из того, что я нашел, он не вызывает метод, потому что ориентация не изменилась.
Что вам нужно сделать, так это передать кнопку от контроллера представления представления, так как она уже привязана к popover следующим образом:
if(self.navigationItem.leftBarButtonItem != nil) { newViewController.navigationItem.leftBarButtonItem = self.navigationItem.leftBarButtonItem; } // Push the newViewController