Итак, у меня есть два монитора просмотра, которые отображаются одновременно. Цель состоит в следующем: когда я нажимаю меню, он возвращает индекс. Это уведомит другой экран, который необходимо обновить.NSNotification userinfo сохраняет штабелирование при нажатии кнопок
Я делаю следующее:
контроллера (меню)
func carbonTabSwipeNavigation(carbonTabSwipeNavigation: CarbonTabSwipeNavigation, didMoveAtIndex index: UInt) {
//NSLog("Did move at index: %ld", index)
//NSNotification to send data
NSNotificationCenter.defaultCenter().postNotificationName(NotificationNames.GetIndexCarbonKit, object: nil, userInfo: ["clickedIndex" : Int(index)])
}
контроллер B (приемник)
override func viewWillAppear(animated: Bool) {
NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(SearchResults.didReceiveNotification(_:)), name: NotificationNames.GetIndexCarbonKit, object: nil)
}
func didReceiveNotification(notification: NSNotification) {
let index:Dictionary<String,Int> = notification.userInfo as! Dictionary<String,Int>
let messageFromNotification = index["clickedIndex"]
print(" SearchResults now shows index: \(messageFromNotification)")
}
Мой вопрос заключается в следующем: Словарь, в котором Я отправляю индекс от A до B, сохраняя стекирование. Поэтому, если я нажимаю меню несколько раз, мой выход следующий:
SearchResults now shows index: Optional(0)
SearchResults now shows index: Optional(1)
SearchResults now shows index: Optional(1)
SearchResults now shows index: Optional(2)
SearchResults now shows index: Optional(2)
SearchResults now shows index: Optional(2)
SearchResults now shows index: Optional(3)
SearchResults now shows index: Optional(3)
SearchResults now shows index: Optional(3)
SearchResults now shows index: Optional(3)
SearchResults now shows index: Optional(1)
SearchResults now shows index: Optional(1)
SearchResults now shows index: Optional(1)
SearchResults now shows index: Optional(1)
SearchResults now shows index: Optional(1)
Как я могу получить только последний индекс? Мне не нужен стек других.
Спасибо за информацию, я изменил ее. тем не менее, это не останавливает словарь от укладки. – SoundShock
Проверьте измененный ответ. Вы также не должны вызывать его в viewDidLoad. – Dershowitz123
Я не могу этого сделать, поскольку 'func didReceiveNotification' вызывается только после того, как я добавил наблюдателя. Следовательно, 'NSNotificationCenter.defaultCenter(). AddObserver (self, selector: #selector (SearchResults.didReceiveNotification (_ :))' – SoundShock