0

Это общий вопрос, но я не могу найти прямой ответ, и я не уверен, что искать. У меня есть бэкэнд, который отправляет уведомления, когда кому-то нравится что-то, что вы отправили, я могу отправить его, и приложение получает его. Однако я не уверен, как создать пользовательский интерфейс для обработки уведомления. Мое первое предположение заключалось в том, что, поскольку прием уведомлений вызывает didReceiveRemoteNotification fetchCompletionHandler в AppDelegate, я должен попытаться получить текущий VC в этой функции и добавить туда графические элементы. Тем не менее, я читал, что это не то, что вам следует делать, и вместо этого вы должны использовать NSNotifications. Проблема в том, что я не уверен, что понимаю, как я могу сформулировать удаленные уведомления с помощью NSNotificationsCenter.Swift: Как получить удаленное уведомление с сервера?

Что вы рекомендуете?

+0

Возможный дубликат: http://stackoverflow.com/questions/31610 896/control-which-view-controller-load-after-receive-a-push-notification-in-s/31612906 # 31612906 –

+0

На самом деле, моя проблема не так сложна: я могу получить информацию в приложении. Мой вопрос: как я должен отображать его на представленном контроллере View? Должен ли я получить представленный контроллер представления в делегате приложения и просто добавить UIView? –

+0

Не знаете, как это связано с удаленным уведомлением. –

ответ

0

NSNotification является частью шаблона проектирования Observer.

Это похоже на «трансляцию».

Сначала вы должны зарегистрировать каждый компонент, который должен быть слушать событие:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(myFonction) name:@"Notif name" object:nil]; 
    //swift 
NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(myFonction), name: "notif name", object: nil) 

Далее, если у вас есть сообщение для вещания, пост уведомление с тем же именем:

[[NSNotificationCenter defaultCenter] postNotificationName:@"Notif name" object:nil]; 
//swift 
NSNotificationCenter.defaultCenter().postNotificationName("notif name", object: nil) 

Когда вы опубликуете уведомление, будет вызван метод myFonction на target

+0

На самом деле, моя проблема не так сложна: я могу получить информацию в приложении. Мой вопрос: как я должен отображать его на представленном контроллере View? Должен ли я получить представленный контроллер представления в делегате приложения и просто добавить UIView? Я пытаюсь получить UIView поверх экрана, как в большинстве обычных приложений, а не в UIAlert ... –

+0

Мой ответ - способ сделать это. В 'myFonction' вы можете делать все, что хотите: отображать предупреждение, добавляя пользовательский UIView ... – CZ54

+0

Вы правы, UIView, который я пытался отображать, не появлялся, поэтому я думал, что может потребоваться больше шагов, но это проблема масштаба, так что теперь это работает. Спасибо за подробный ответ! –

Смежные вопросы