Как уменьшить начальный контроллер корневого представления, чтобы открыть новый контроллер фонового корневого представлеIOS

Программируем под IOS
Ответить Пред. темаСлед. тема
Anonymous
 Как уменьшить начальный контроллер корневого представления, чтобы открыть новый контроллер фонового корневого представле

Сообщение Anonymous »


У меня есть два контроллера корневого представления, между которыми мне нужно анимировать (сдвигать вверх/затухать).

Когда я нажимаю кнопку на viewControllerA, viewControllerB должен загрузиться в фоновом режиме и установить себя в качестве корневого контроллера представления. Когда все будет готово, viewControllerA должен скользить вверх и в то же время постепенно исчезать, открывая viewControllerB. Когда анимация завершится, viewControllerA должен быть удален из иерархии. Я установил viewcontrollerB в качестве корня перед началом анимации, чтобы пользователь мог перемещаться по viewControllerB при перемещении viewControllerA вверх.

viewControllerA иногда воспроизводит видео или другую анимацию, и я не хочу, чтобы они останавливались во время перехода. viewControllerA должен быть полностью удален из иерархии после завершения анимации.

После многих часов я пришел к следующему:

private func setNewRootViewController(_ viewController: UIViewController) { DispatchQueue.main.async { UIView.animate(withDuration: 0,5, анимации: { // Сдвиньте вверх и закройте текущий viewController (vcA) self.view.alpha = 0 self.view.transform = CGAffineTransform(translationX: 0, y: - self.view.frame.height) }) { _ в // Удаляем текущий viewController из родительского контроллера представления self.removeFromParent() // Устанавливаем новый viewController (vcB) в качестве корневого контроллера представления пусть appDelegate = UIApplication.shared.delegate as! AppDelegate appDelegate.window?.rootViewController = viewController } // Анимируем внешний вид нового viewController (vcB) UIView.animate(withDuration: 0,5) { viewController.view.alpha = 1 } } } Он сдвигает viewControllerA и затемняет его, но показывает только черный фон. После его завершения черный экран внезапно превращается в viewControllerB. Я чувствую, что уже очень близко, но рву на себе волосы, а здесь уже поздно. Я просмотрел весь стек поверх потока и, протестировав несколько идей, я написал вышеизложенное. Пожалуйста, помогите
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «IOS»