如果我这样写下面代码它正在工作,但我的每个viewController push,present和pop动画关闭。 如何使用AppDelegate使用窗口对象?
extension AppDelegate {
func PresentLoginNavigationControllerScreen()-> Void {
let mainStoryboard : UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let initialViewController = mainStoryboard.instantiateInitialViewController()
self.window?.rootViewController = initialViewController
self.window?.makeKeyAndVisible()
}
func PresentHomeNavigationControllerScreen()-> Void
{
let mainStoryboard : UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let initialViewController = mainStoryboard.instantiateViewController(withIdentifier: "HomeNavigationController")
self.window?.rootViewController = initialViewController
self.window?.makeKeyAndVisible()
}
}
@IBAction func LogoutButtonOnClick(_ sender: UIButton)
{
if let appDelegate = UIApplication.shared.delegate! as? AppDelegate
{
appDelegate.PresentLoginNavigationControllerScreen()
}
}
如果我更改了logout
按钮,请点击appdelegate
被调用的功能,然后更改为HomeViewController
至LoginViewController
,然后导航将动画设置为禁用。我的任何屏幕都没有动画。但是我将再次申请Open然后开始工作。
请告诉我如何在appDelegate和重新启动应用程序中更改根视图控制器。
答案 0 :(得分:0)
您可以像这样在转换块中切换rootViewController
。
UIView.transitionWithView(self.window, duration: 0.5, options: UIViewAnimationOptions.UIViewAnimationOptions.transitionFlipFromLeft, animations: {
self.window.rootViewController = newViewController
}, completion: { (finished: Bool) -> () in
//Completion process
})
希望这会对你有所帮助。