[英]How to dismiss the current ViewController and go to another View in Swift
[英]How to dismiss current view and reload another?
@IBAction func DoneButton(sender: AnyObject) {
self.dismissViewControllerAnimated(true, completion: nil)
let viewController = self.storyboard?.instantiateViewControllerWithIdentifier("ViewController") as UIViewController
viewController.viewWillAppear()
}
它应该关闭我的当前视图并重新加载ViewController
但由于致命错误而崩溃:意外
found nil while unwrapping an Optional value
是因为我以前解雇了吗?
调用instantiateViewControllerWithIdentifier()
返回一个可选的。 因此,如果无法在情节提要中找到具有指定标识符的视图控制器,它将设置为nil,则调用viewWillAppear
的下一行将崩溃。
实际上,您也有可能在viewWillAppear
内部崩溃。 那不是您应该调用的方法。 相反,当显示视图控制器时,UIKit会为您调用该方法。
我猜您正在尝试执行以下操作:
if let viewController = self.storyboard?.instantiateViewControllerWithIdentifier("ViewController") as UIViewController {
self.presentViewController(viewController,
animated: true, completion: nil)
}
如果不是,请为您的问题提供更多背景信息。
我当时想做
1。
let viewController = ViewController()
viewController.viewWillAppear(false)
2。
在中学班:
let viewController = ViewController()
viewController.shouldRefresh = true
在小学班级:
var shouldRefresh: Bool!
override func viewWillAppear(animated: Bool) {
if shouldRefresh == true {
}
}
3。
在中学班:
let viewController = ViewController()
viewController.reloadRoutineData()
在小学班级:
func reloadRoutineData() {
// Do my stuff here
}
第三个选项是我的变量,因为我只需要执行某些代码,而无需真正完全重载视图。 但是它们在展开时都崩溃为零。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.