我正在上入职页面。
我的入职培训包含一个UIViewController
,其中包含UIView
。此UIPageController嵌入此UIView中。查看屏幕截图
可以从两个不同的地方访问此入职; 1-在首次出现的启动屏幕中2-从应用程序的设置
这就是为什么,我在两个页面中都定义了两个Boolean
(第一个UIViewController
及其UIPageController
是为了了解此入门页面是从何处打开的。
在两个页面中都定义了这两个布尔值:
var fromSetting = false
var fromLaunch = false
例如,从设置开始,我这样称呼这些入职页面:
let welcomeStoryboard = UIStoryboard(name: "Welcome", bundle: nil)
let welcomeController = welcomeStoryboard.instantiateViewController(withIdentifier: "welcomePage") as! WelcomePage
welcomeController.fromSetting = true
self.present(welcomeController,animated:true,completion:nil)
对于主UIViewController
来说,它工作得非常好,在准备工作中,我说过当此布尔值为true时,请告诉UIPageController
在UIPageController
中使此布尔值为true >
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "welcome" {
if let welcomePage = segue.destination as? WelcomePageViewController {
if fromSetting {
welcomePage.fromSetting = true
} else if fromLaunch {
welcomePage.fromLaunch = true
}
}
}
}
问题在于,UIPageController
与主UIViewController
同时打开,这就是为什么我在准备语句中写的内容都不计算在内的原因。您能否告诉我一个很好的理由,为什么要告诉这两个页面它来自哪里?