简体   繁体   English

未调用通知观察者选择器

[英]Notification observer selector not called

I have this observer我有这个观察者

    override func viewDidLoad() {
        super.viewDidLoad()
        NotificationCenter.default.addObserver(self, selector: #selector(GetUserID(_:)), name: Notification.Name("UserID"), object: nil)
    }

and this selector function和这个选择器功能

    @objc func GetUserID(_ notification: Notification){
        let User = notification.object as? String
        self.UserID = User
    }

And I keep getting nil in UserID even though I am certain that when I get the notification it is not nil which makes me believe that the selector is not being called而且我一直在 UserID 中获得 nil,即使我确定当我收到通知时它不是 nil 这让我相信选择器没有被调用

You can get observer value by below method您可以通过以下方法获得观察者值

 let selectedIndex:[String: Int] = ["selectedIndex": 1]
                         //selectedindex = 0
                         // post a notification
            NotificationCenter.default.post(name: NSNotification.Name(rawValue: "SelectedSegment"), object: nil, userInfo: selectedIndex)



    NotificationCenter.default.addObserver(self, selector: #selector(self.changeSegmentControlIndex(notification:)), name: Notification.Name("SelectedSegment"), object: nil)

     @objc func changeSegmentControlIndex(notification: Notification) {
        
        if let selectedIndex = notification.userInfo?["selectedIndex"] as? Int {
         // do something with your image
            print(selectedIndex)

         }
    }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM