Делегат 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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