在AppDelegate中使用applicationDidBecomeActive是每次ios应用程序处于活动状态时呈现特定ViewController的好方法。但是我该如何覆盖此功能,并在应用程序再次激活后何时显示视图控制器或不显示视图控制器时有一些例外。当我从UIImgaePickerController中选择图像时,视图控制器再次出现。即使不避免在applicationDidBecomeActive()中分配的rootcontroller再次弹出,我如何使我的应用程序处于活动状态。
答案 0 :(得分:0)
如果我正确理解了这个问题,那么当您在使用应用程序时发生问题时,您想更改根视图控制器,因此可以将这段代码放在platformBrowserDynamic().bootstrapModule(AppModule, [
{
defaultEncapsulation: ViewEncapsulation.Native
}
])
中:这只是捕获了当前的{{1} },在过渡中设置新的并关闭并删除旧的
AppDelegate
然后,当您需要更改rootViewController
时,您可以:
func changeRootViewController(with viewController: UIViewController) {
guard let oldViewController = self.window?.rootViewController else { return }
UIView.transition(from: oldViewController.view, to: viewController.view, duration: 0.3, options: [.transitionCrossDissolve, .allowAnimatedContent]) { _ in
self.window!.rootViewController = viewController
self.window!.makeKeyAndVisible()
oldViewController.dismiss(animated: false) {
oldViewController.view.removeFromSuperview()
}
}
}