我和标题有完全相同的问题
请参阅下面的代码
每个代码都列在一个单独的文件中
我在ViewController类中编写了一个用于屏幕转换的方法(如func goToSecondView())
然后我们决定在另一个文件(FirstFile)中的“iconATapped”方法中创建一个实例,并进行ViewController的屏幕转换。
但是,它没有成功并发出以下错误
let next = storyboard!.instantiateViewController(withIdentifier: "secondView")
//Thread 1: Fatal error: Unexpectedly found nil while unwrapping an Optional value
调用Action方法时,此错误有效
请告诉我解决这个问题的方法。
//FirstFile
import UIKit
class goNextPage: UIView {
@IBAction func iconATapped(_ sender: Any) {
ViewController.goToSecondView()
}
}
//SecondFile
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
func goToSecondView(){
let next = storyboard!.instantiateViewController(withIdentifier: "secondView")
self.present(next,animated: true, completion: nil)
}
}
答案 0 :(得分:0)
您正在使用ViewController.goToSecondView()并在goToSecondView中使用自己
self.present(next,animated: true, completion: nil)
这里你的自己将是零,因为你没有使用ViewController的变量,而是它的类名。所以没有ViewController的实例,因此导致nil。
尝试在第一个文件中创建ViewController的变量,然后尝试展示新的Vc。希望这有帮助!