Здравствуйте, изучите быстро и застрял в вызове метода через делегата. Проверял несколько ответов с аналогичными проблемами и пробовал решения, но не смог успешно применить их к моей собственной ситуации, но я близок.Swift 2 - метод, который не вызван через делегата
У меня есть класс делегата с именем ViewController, который содержит переменную, которую я хотел бы изменить. У меня есть другое представление под названием MoodScroll, которое выполняет функции делегата. Moodscroll имеет кнопку, которая используется для изменения значения переменной в ViewController.
ViewController:
class ViewController: UIViewController, AVAudioPlayerDelegate, MoodScrollDelegate {
var alarmSoundType: String?
func acceptData(data: String?) {
alarmSoundType = "\(data)"
print(data)
}
}
MoodScroll:
protocol MoodScrollDelegate {
func acceptData(data: String?)
}
import UIKit
class MoodScroll: UIViewController {
@IBAction func WTF(sender: AnyObject) {
self.delegate?.acceptData("hello")
print("function called")
}
}
IBAction называет штраф, как он печатает "функция называется" в консоли, однако он не пропускает значение ViewController поскольку alarmSoundType остается равным нулю, а также команда print не вызывается в ViewController.
Где вы объявляете Объект MoodScoll в классе ViewController? – iMuzahid
проверить, если self.delegate равен нулю, прежде чем вы его вызываете, иначе вы не назначили делегата должным образом – Fonix