从设置返回时显示不同的控制器

时间:2018-11-07 14:38:58

标签: ios swift

对于新用户,我有几个入职屏幕(所有屏幕都在同一OnboardViewController中)。如果用户成功注册,则将应用程序的根控制器从OnboardViewController更改为PreLoadViewController

let mcVC = PreLoadController()
appDelegateTemp.window?.rootViewController = mcVC

我正在使用此控制器来显示内容加载的进度。加载内容后,我将再次更改根控制器:

if let appDelegateTemp = UIApplication.shared.delegate as? AppDelegate {
        let mcVC = MainViewController()
        let navy = UINavigationController(rootViewController: mcVC)
        appDelegateTemp.window?.rootViewController = navy
}

它可以工作,但是我有一个非常奇怪的错误。当我尝试从应用程序更改设置(例如mic settingsnotifications settings)时,我必须转到iPhone设置:

if let settingsUrl = URL(string: UIApplication.openSettingsURLString) {
     UIApplication.shared.open(settingsUrl)
}

但是当我回来时,我再次看到OnboardViewController,好像appDelegate不记得当前的根控制器是mcVC(或者UINavigationController嵌入了{ {1}}。

那么,为什么呢?解决此问题的正确方法是什么?

0 个答案:

没有答案