我正在通過委託傳遞一個函數內存在的變量。大多數情況下,一切似乎都奏效。唯一無法弄清楚的是如何設置委託,例如它應該是這樣的"foo".delegate = self
如何/在哪裏設置委託
通常這會很簡單,但因爲我正在使用一個函數而不是一個類的變量,我不知道什麼foo
會(請原諒術語,我需要一個佔位符)
供您參考
這裏是協議:
protocol TagToIndexDelegate {
func finishPassing (dictionary:Dictionary<Int,Int>)
}
這裏是我想從發送變量的函數:
extension MyCell: YSSegmentedControlDelegate {
func segmentedControl(_ segmentedControl: YSSegmentedControl, willPressItemAt index: Int) {
tagToIndex[actionButton.tag] = index
delegate?.finishPassing(dictionary: tagToIndex)
}
func segmentedControl(_ segmentedControl: YSSegmentedControl, didPressItemAt index: Int) {
}}
哪裏delegate
是TagToIndexDelegate
型的,並且內willPressItemAt
,其存在的可變tagToIndex
是我傳遞的數據。
最後,類我想實現TagToIndexDelegate
class AnswerViewController: UIViewController, TagToIndexDelegate {
func finishPassing (dictionary: Dictionary <Int, Int>)
{
}
override func viewDidLoad() {
super.viewDidLoad()
}
}
我是很新,使用委託,所以任何幫助或批評是極大的讚賞。
謝謝,
尼克
我不完全確定這裏發生了什麼。如果委託是「MyCell」的一部分,那麼是否由初始化「MyCell」的人設置?這發生在哪裏? – Ssswift
你嘗試過viewDidLoad嗎? – Boris