NSNotificationCenter никогда не вызывал метод селектора

Я отправляю уведомление моему SecondViewController . Это выглядит так:

 @IBAction func NotifyButton(sender:AnyObject)
{
    NSNotificationCenter.defaultCenter().postNotificationName("test", object: nil)

}

в моем SecondViewController я наблюдаю это уведомление.

   override func viewDidLoad() {
    super.viewDidLoad()

    NSNotificationCenter.defaultCenter().addObserver(self, selector: "Noti", name: "test", object: nil)

}

И мой метод выбора здесь:

 func Noti(notification:NSNotification)
    {
     println( "Ohhhh Notification aaya ...are wa")
}


but control is never reach to selector method. Thanks

person RAMA    schedule 23.04.2015    source источник
comment
имя селектора неверно. Используйте Noti: вместо Noti, потому что ваша функция имеет 1 параметр   -  person Duyen-Hoa    schedule 23.04.2015
comment
Я пытаюсь это сделать, но это не сработало.   -  person RAMA    schedule 23.04.2015
comment
Можете ли вы попробовать также Selector("Noti:"). Я не вижу других проблем с вашим кодом, кроме объявления Selector для использования   -  person Duyen-Hoa    schedule 23.04.2015
comment
Сэр, когда я пишу селектор (Noti :), тогда в Xcode 6.1.1 возникает ошибка, он автоматически устанавливает селектор: Noti: поэтому я не могу использовать S в заглавном слове в селекторе ..... и когда я использую селектор :(Noti:) не было ошибки, но не было вызова SecondViewController для метода addObservor.   -  person RAMA    schedule 23.04.2015
comment
Нет, я имею в виду использование selector: Selector("Noti:") вместо selector: "Noti:" .   -  person Duyen-Hoa    schedule 23.04.2015
comment
Сэр, я использовал все возможности, но NSNotificationCenter не выполняется в моей системе, Кто-нибудь, помогите мне.   -  person RAMA    schedule 24.04.2015
comment
Убедитесь, что ваш второй контроллер представления освобожден или нет. Если вы вызываете NotifyButton из другого контроллера представления, убедитесь, что ваш контроллер второго представления не освобожден.   -  person Duyen-Hoa    schedule 24.04.2015


Ответы (1)


Отправлено (Post) уведомление

 NSNotificationCenter.defaultCenter().postNotificationName("NotificationIdentifier", object: nil)

Получить (получить) уведомление

NSNotificationCenter.defaultCenter().addObserver(self, selector: "methodOfReceivedNotification:", name:"NotificationIdentifier", object: nil)

Удалить уведомление

NSNotificationCenter.defaultCenter().removeObserver(self, name: "NotificationIdentifier", object: nil)

Способ получения уведомления

 func methodOfReceivedNotification(notification: NSNotification){
//Action take on Notification
}
person aBilal17    schedule 23.04.2015
comment
Сэр, Post Notification работает... но Notification не получен во втором контроллере просмотра.. - person RAMA; 23.04.2015
comment
Сэр, ошибки не было... но я не могу получить уведомление... и я пишу код addObserver внутри метода Viewdidload() SecondViewController. - person RAMA; 23.04.2015
comment
Можете ли вы добавить : к названию уведомления test: и попробовать - person Nassif; 23.04.2015
comment
Нассиф Сэр, я также использовал: в имени уведомления test: и имя селектора Noti: также... но это не ответ..... - person RAMA; 23.04.2015
comment
просто замените NSNotificationCenter.defaultCenter().addObserver(self, selector: Noti, name: test, object: nil) на NSNotificationCenter.defaultCenter().addObserver(self, selector: Noti:, name: test, object: nil) в вашем метод viewdidload - person aBilal17; 23.04.2015
comment
сэр, я установил селектор: Примечание: но это не работает ... я пытаюсь использовать NSNotificationCenter последние три дня ... но я не могу понять свою проблему, почему не может быть вызван метод addObserver. - person RAMA; 24.04.2015
comment
Фонд @import; для цели c импортируйте Foundation для быстрого, а затем проверьте - person aBilal17; 24.04.2015
comment
Спасибо за предложение ...... но оно не работает ..... я не знаю, где я ошибаюсь ... я думаю, что когда уведомление передается, SecondViewController не может получить уведомление .. - person RAMA; 24.04.2015