Как уменьшить начальный контроллер корневого представления, чтобы открыть новый контроллер фонового корневого представле ⇐ IOS
Как уменьшить начальный контроллер корневого представления, чтобы открыть новый контроллер фонового корневого представле
У меня есть два контроллера корневого представления, между которыми мне нужно анимировать (сдвигать вверх/затухать).
Когда я нажимаю кнопку на 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. Я чувствую, что уже очень близко, но рву на себе волосы, а здесь уже поздно. Я просмотрел весь стек поверх потока и, протестировав несколько идей, я написал вышеизложенное. Пожалуйста, помогите
У меня есть два контроллера корневого представления, между которыми мне нужно анимировать (сдвигать вверх/затухать).
Когда я нажимаю кнопку на 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. Я чувствую, что уже очень близко, но рву на себе волосы, а здесь уже поздно. Я просмотрел весь стек поверх потока и, протестировав несколько идей, я написал вышеизложенное. Пожалуйста, помогите
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение