Делегат iOS не установлен и возвращает ноль (Swift)IOS

Программируем под IOS
Anonymous
Делегат iOS не установлен и возвращает ноль (Swift)

Сообщение Anonymous »

Я получаю ноль при попытке установить делегат и не могу понять, почему делегат установлен неправильно.

У меня есть контроллер представления ListViewController, к которому я добавляю подпредставление, musicPlayer. musicPlayer — это UIView, в котором есть несколько кнопок, которые при нажатии должны запускать действия в ListViewController.

Код: Выделить всё

musicPlayer
настраивается следующим образом:

Код: Выделить всё

protocol MusicPlayerControlsDelegate {
func playPauseClicked()
}

class musicPlayer: UIView {

var myDelegate: MusicPlayerControlsDelegate?

//this should trigger function in delegate
@IBAction func playOrPause(sender: AnyObject) {
println(myDelegate?)
myDelegate?.playPauseClicked()
}

Код: Выделить всё

ListViewController
настраивается следующим образом:

Код: Выделить всё

class ListViewController: UIViewController, UITableViewDelegate, UITableViewDataSource, MusicPlayerControlsDelegate {

var musicControls:musicPlayer = musicPlayer()

override func viewDidLoad() {
musicControls.myDelegate = self
}

//adds musicPlayer nib as a subview to ListViewController
@IBAction func playInApp(sender: AnyObject) {

let bundle = NSBundle(forClass: musicPlayer.self)
var playerSubview = bundle.loadNibNamed("musicPlayerSubview", owner: nil, options: nil)[0] as UIView
playerSubview.frame = CGRectMake(0, self.view.frame.width + 79, self.view.frame.width, 200)

self.view.addSubview(playerSubview)
}

func playPauseClicked() {
println("Your delegate is working")
}
Когда я запускаю это, println(myDelegate) равен нулю и println("Ваш делегат работает") никогда не получает называется. Есть предложения, как это исправить?

Подробнее здесь: https://stackoverflow.com/questions/275 ... -nil-swift

Вернуться в «IOS»