Диалог, представленный со стилем UIModalPresentationFormSheet в всплывающем контроллере разделенного представления, исчез после вращения
Я использую разделенное представление в своем приложении и представляю диалоговое окно со стилем UIModalPresentationFormSheet в поповерном контроллере в портретном режиме, но после поворота в ландшафтный режим диалоговое окно автоматически исчезает. Я не хочу, чтобы он исчез, я хотел бы, чтобы пользователь мог использовать диалог после поворота, что я могу сделать?
Я обнаружил, что если я представляю диалог в ландшафтном режиме в первый раз, диалог не исчезнет после поворота в портретный режим, это странно.
Любые советы или помощь будут высоко оценены.
2 ответа
Я решил эту проблему следующим образом: вместо всплывающего окна представьте представление из контроллера разделенного представления, и оно не исчезнет, когда я поверну устройство
iOS попытается автоматически переместить представление, но это зависит от того, откуда представлен поповер. Из документов
Если пользователь поворачивает устройство, когда всплывающее окно видно, контроллер всплывающего окна скрывает всплывающее окно и затем показывает его снова в конце поворота. Контроллер всплывающих окон пытается разместить поповер надлежащим образом для вас, но вам, возможно, придется представить его снова или скрыть его в некоторых случаях. Например, при отображении из элемента панели кнопок контроллер поповер автоматически настраивает положение (и, возможно, размер) панели для учета изменений в позиции элемента кнопки панели. Однако, если вы удалите элемент панели кнопок во время поворота, или если вы представили поповер из целевого прямоугольника на виде, контроллер поповер не будет пытаться переместить поповер. В этих случаях вы должны вручную скрыть всплывающее окно или снова представить его из соответствующей новой позиции. Вы можете сделать это в didRotateFromInterfaceOrientation: метод контроллера представления, который вы использовали для представления всплывающего окна.