Есть ли способ получить эффект перехода / анимации при замене существующего контроллера просмотра как rootviewcontroller новым в appDelegate?
objective-c
ios
xcode
cocoa-touch
Джефферсон
источник
источник
newViewController.view.layoutIfNeeded()
перед блоком анимации устраняет проблемы с лениво загруженными элементами.Я нашел это и отлично работает:
в вашем appDelegate:
в вашем приложении
кредиты:
источник
Я отправляю ответ Иисуса, реализованный быстро. Он принимает идентификатор viewcontroller в качестве аргумента, загружает из раскадровки желаемый ViewController и изменяет rootViewController с помощью анимации.
Обновление Swift 3.0:
Обновление Swift 2.2:
После этого у вас будет очень простое использование из любого места:
Swift 3.0 обновить
источник
Swift 2
Свифт 3, 4, 5
источник
просто попробуйте это. У меня отлично работает.
РЕДАКТИРОВАТЬ:
Этот лучше.
источник
UIViewAnimationOptionAllowAnimatedContent|UIViewAnimationOptionLayoutSubviews
, либо используйте первую версию, либо какой-нибудь другой метод.Чтобы не было проблем с переворотом перехода позже в приложении, хорошо также очистить старый вид из стека.
источник
Правильный ответ: вам не нужно заменять значок
rootViewController
на вашем окне. Вместо этого создайте заказUIViewController
, назначьте его один раз и позвольте ему отображать по одному дочернему контроллеру за раз и при необходимости заменить его анимацией. Вы можете использовать следующий фрагмент кода в качестве отправной точки:Swift 3.0
И способ его использования:
Приведенный выше пример демонстрирует, что вы можете вкладываться
UINavigationController
внутрь,FrameViewController
и это прекрасно работает. Такой подход дает вам высокий уровень настройки и контроля. Просто звоните вFrameViewController.display(_)
любое время, когда вы захотите заменить корневой контроллер в своем окне, и он выполнит эту работу за вас.источник
Это обновление для Swift 3, этот метод должен быть в делегате вашего приложения, и вы вызываете его из любого контроллера представления через общий экземпляр делегата приложения.
Часть, которая отсутствует в различных вопросах выше, это
Надеюсь, это кому-то поможет.
источник
в AppDelegate.h:
в вашем контроллере:
источник
Я предлагаю свой способ, который отлично работает в моем проекте, и предлагает мне хорошие анимации. Я протестировал другие предложения, найденные в этом посте, но некоторые из них не работают должным образом.
источник
Приятная милая анимация (проверено на Swift 4.x):
Звоните с
источник