我試圖在按下按鈕時更改另一個視圖控制器中的標籤文本。下面是我設置了委託:import UIKit
Swift - 不從別的類調用方法的代理
@objc protocol MyDelegate{
optional func makeScore()
}
在FirstViewController下class FirstViewController: UIViewController
var delegate:MyDelegate?
在FirstViewController下,當按下一個按鈕
在FirstViewController
delegate?.makeScore!()
在SecondViewController(其中makeScore()
所在地)
class SecondViewController: UIViewController, MyDelegate
的makeScore()
方法SecondViewController
func makeScore() {
println("worked")
}
按下按鈕時,它不記錄任何東西。我很確定我正確設置了代表和協議。你看到有什麼遺漏嗎?
注意:FirstViewController
和SecondViewController
不通過segues連接。他們都在scrollView
。
您在哪裏分配'delegate'屬性? –
正好在我的'@ IBOutlets'和'viewDidLoad'覆蓋之間。 – smecperson
它聲明瞭委託,但您需要爲某個地方分配一個「SecondViewController」實例來使該通信正常工作。 –