我试图在按下按钮时调用另一个类的方法,但它不工作并给出 fatal error (在展开可选值时意外发现 nil)。我不知道我是否做错了什么。
这是第一个类 (FirstViewController) 的代码
@IBAction func pressButton(sender: UIButton) {
SecondViewController().pressedButton()
}
这是另一个类(SecondViewController)中的代码
func pressedButton() {
self.scrollView.setContentOffset(CGPoint(x: 320, y: 0), animated: true)
}
我将上面的代码放在 viewDidLoad
之后(在 SecondViewController 的类中)。
最佳答案
问题是在您的第一个代码中 SecondViewController()
创建了一个全新的 SecondViewController 实例。这与具有 scrollView
的 SecondViewController 不同,因此它的 scrollView
为 nil,当您尝试使用它时会崩溃。
相反,SecondViewController 需要已经存在于您的 View Controller 层次结构中,并且您需要与那个 SecondViewController 对话。
关于ios - ScrollView : unexpectedly found nil while unwrapping an Optional value,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29658033/