Не следует создавать новый UIWindow
. Как правило, приложение для iOS имеет только 1 окно. Два лучших варианта, которые я вижу:
Вы можете добавить подпредставление и распознаватели жестов для осуществления вытягивания. Это означает, что вся логика, вероятно, будет в пределах родительского UIViewController
. Если логики не так много и лист не нужно многократно использовать, это хороший вариант.
Если внутри листа больше логики или лист имеет возможность многократного использования, то для этого лучше создать отдельный UIViewController
. Затем вы можете представить это, используя пользовательскую анимацию и контроллер представления. Посмотрите на UIViewControllerAnimatedTransitioning
и UIPresentationController
для этого.
Я использовал второй вариант раньше. A UIPresentationController
позаботьтесь о расположении вида листа в нижней части экрана. Он также затемняет фон и добавляет распознаватели жестов для обработки операций вытягивания и отклонения.
Вы можете использовать этот учебник, чтобы начать работу с UIPresentationController
. Вы также можете взять код и адаптировать его под свои нужды: https://www.raywenderlich.com/915-uipresentationcontroller-tutorial-getting-started