То же самое случилось со мной пару дней назад.Вам просто нужно убедиться, что подробный вид является делегатом splitView.Если вы попытаетесь установить делегат в подробном представлении viewDidLoad
, он не будет установлен до тех пор, пока не будет загружена splitView (с корневым контроллером tableView).Вот почему он не размещается, пока вы не переключитесь в ландшафт и обратно.Лучший способ установить делегат - либо в файле реализации делегата приложения (когда вы создаете UISplitViewController, который был бы лучшей идеей), либо в корневом контроллере tableView с чем-то вроде
- (void)viewDidLoad {
self.splitViewController.delegate = [self.splitViewController.viewControllers objectAtIndex:1];
}
, что делаетделегат подробного представления, поэтому, когда он загружается после загрузки контроллера tableView, он вызывает ваш метод splitViewController:willHideViewController:...
.
Конечно, это может быть не та ситуация, которая у вас есть.Я просто предполагаю, что, поскольку у меня было точно такое же поведение, это, вероятно, та же причина.Если это не сработает, просто скажите, и мы найдем причину