У меня проблема. Мое приложение — это контроллер панели вкладок, а его первый контроллер представления — это контроллер разделенного представления. Кажется, это не подходит для Apple, потому что в документах говорится, что контроллер разделенного voew должен быть корнем, так что, возможно, это причина моих проблем.
Проблема в том, что иногда не вызывается willHideViewController из UISplitViewControllerDelegate, поэтому верхняя/левая кнопка иногда не создается, что раздражает. Я понял, чтобы воспроизвести эту ошибку, попробуйте несколько раз это: -Ландшафтный режим. -Выберите вкладку, отличную от касания контроллера разделенного вида. -Переместите iPad в книжную ориентацию на этой вкладке. - Перейдите на вкладку контроллера разделенного представления, и иногда willHideViewController не вызывается, поэтому вы не увидите верхнюю кнопку. Однако, если я поверну свой iPad в альбомную ориентацию, а затем в портретную, это будет исправлено.
Я попытался вручную выполнить несколько вращений, чтобы обойти эту проблему, но безуспешно. Мне все еще нужно попробовать любой класс клонирования контроллера с разделенным представлением из github или подобного. Есть ли у вас идеи, что происходит или какие-либо обходные пути?
Здесь я покажу вам два примера, работающих правильно.
Большое спасибо за помощь.
UISplitViewController
внутриUITabBarController
. В моем приложении поведениеUISplitViewController
дополнительно зависит от ориентации, в которой запускается приложение: если оно запускается в альбомной ориентации, поведение будет таким, как вы описываете. Однако, если приложение запускается в портретной ориентации, ваш сценарий работает нормально, но вместо этого возникает проблема, когда приложение поворачивается в альбомную ориентацию (UISplitViewController
не вызывает метод делегатаwillShowViewController:invalidatingBarButtonItem:
). - person herzbube   schedule 08.07.2013