2015-04-15 53 views
1

我試圖從一個按鈕按下時調用另一個類的方法,但它不工作,並給出致命錯誤(意外地發現零,而解包一個可選值)。我不知道我是否做錯了什麼。滾動查看:意外地發現零,同時展開一個可選值

下面是來自第一類(FirstViewController)代碼

@IBAction func pressButton(sender: UIButton) { 
     SecondViewController().pressedButton() 
    } 

下面是在另一個類中的代碼(SecondViewController)

func pressedButton() { 
     self.scrollView.setContentOffset(CGPoint(x: 320, y: 0), animated: true) 
    } 

我放置在上面的代碼後右viewDidLoad(在SecondViewController的類) 。

回答

2

問題是,在您的第一個代碼SecondViewController()創建一個全新的SecondViewController實例。這是不一樣的SecondViewController有scrollView,所以它的scrollView是零,你嘗試使用它時崩潰。

相反,SecondViewController必須存在已經在您的視圖控制器層次,你需要跟 SecondViewController。

+0

關於這個區別,請參閱我的書中的討論:http://www.apeth.com/swiftBook/ch04.html#SECinstanceRefs – matt

+0

我如何在Swift中執行此操作?我應該讓這個實例像一個屬性? – smecperson

相關問題