iOS — представить/показать ViewController, в то время как содержимое под ним остается интерактивным

Я хотел бы представить/показать ViewController (назовем его ViewController2), который каким-то образом скрыт (или имеет размер 0), и через некоторое время он будет изменен до определенного размера ( или полноэкранный), сохраняя при этом содержимое ViewController (назовем его ViewController1), представляя/показывая его интерактивным.

Поток ViewControllers


Просто чтобы пояснить, почему я хочу это сделать.

Я пытаюсь загрузить WKWebView в фоновом режиме и, в идеале, хотел бы представить ViewController только, когда веб-просмотр полностью загружен. К сожалению, iOS, похоже, "приостанавливает" оценку javascript и его таймеры через очень короткое время, когда веб-просмотр не представлен пользователь.

Я могу подтвердить, что такой код, как setTimeout, перестает работать, когда веб-представление подключено к ViewController, который не представлен пользователю, и возобновляет работу, когда этот контроллер представлен/показан.

Моя идея заключается в том, чтобы сразу же представить контроллер, но каким-то образом скрыть его (сохраняя при этом интерактивность приложения), и при получении правильного сигнала из веб-просмотра я бы показывал/изменял его размер пользователю.


person André Herculano    schedule 21.10.2019    source источник


Ответы (1)


Если вы делаете это с помощью Xcode 11, то представьте свой контроллер представления модально.

 let changevc = UIViewController() // change this code as this is  your view controller with edit button
 changeVC.modalPresentationStyle = .automatic // .popover
 self.present(changeVC, animated: true, completion: nil

Вы можете попробовать разные типы модальных окон с этого сайта и использовать то, что вам больше нравится. https://developer.apple.com/documentation/uikit/uimodalpresentationstyle

person Reed    schedule 21.10.2019
comment
Модальное представление другого контроллера представления не позволит вам взаимодействовать с контроллером представления, откуда вы представляете модальный контроллер. Но Андре хочет, чтобы это было интерактивным. - person Subramanian Mariappan; 22.10.2019