我有一个关于我的应用的条款和条件页面的视图,我试图在应用程序第一次打开时以模态方式显示。我知道在正确的时间调用performSegueWithIdentifier
方法,但从不加载相应的视图。永远不会调用未来视图控制器中的viewDidLoad
。此外,就我所知,segue标识符也能正确匹配。这导致出现黑屏空白。
override func viewDidAppear(animated: Bool) {
super.viewDidAppear(true)
print("Here")
if !defaults.boolForKey("hasLaunchedBefore"){
defaults.setBool(true, forKey: "hasLaunchedBefore")
setSettingsForFirstTime()
self.performSegueWithIdentifier("firstTime", sender: self)
}
}
突出显示的ViewController是segue启动的地方,它应该在另一个导航控制器上结束,从而结束条款和条件页面,它永远不会加载。顶级ViewController的导航控制器是应用程序的入口点。
答案 0 :(得分:-1)
那是因为你的中间有导航控制器 您可以在准备segue时通过它,并在启动segue之前使视图不可见,以便直接显示条款和条件视图
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
self.view.hidden = true
}
override func viewDidAppear(animated: Bool) {
super.viewDidAppear(true)
if !defaults.boolForKey("hasLaunchedBefore"){
defaults.setBool(true, forKey: "hasLaunchedBefore")
setSettingsForFirstTime()
self.performSegueWithIdentifier("firstTime", sender: self)
}
else { self.view.hidden = false }
}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "Id" {
if let navVc = segue.destinationViewController is UINavigationController {
if let contentVc = (self as! UINavigationController).visibleViewController {
//do preparation
}
}
}
}