通知中心值没有第一次、第二次更新
Notification center values is not getting update for first, second time
我有一个 pagMenuController
on did select 方法我正在传递索引。在另一个 vc
中,我得到了 index
值,我需要显示与传入的 index
值相对应的视图。
我的 FirstVC 中的代码:
func pageMenuController(_ pageMenuController: PageMenuController, didSelectMenuItem index: Int, direction: PageMenuNavigationDirection) {
NotificationCenter.default.post(name: NSNotification.Name(rawValue: "updateView"), object: nil, userInfo: ["indexValue": index])
}
我的SecondVC中的代码:
override func viewWillAppear(_ animated: Bool) {
NotificationCenter.default.addObserver(self, selector: #selector(ContViewController.incomingNotification(_:)), name: NSNotification.Name(rawValue: "updateView"), object: nil)
}
@objc func incomingNotification(_ notification: Notification) {
if let indexVal = notification.userInfo?["indexValue"] as? Int {
print(indexVal)
}
}
每当我的屏幕出现时,我都需要获取 index
值。但是当我第一次点击我的菜单项时,第二次 index
值没有显示。第三,时间到了。我错过了什么。
有什么解决办法吗?
谢谢
将您的观察者移动到 viewdidload
override func viewDidLoad() {
super.viewDidLoad()
NotificationCenter.default.addObserver(self, selector: #selector(ContViewController.incomingNotification(_:)), name: NSNotification.Name(rawValue: "updateView"), object: nil)
}
我有一个 pagMenuController
on did select 方法我正在传递索引。在另一个 vc
中,我得到了 index
值,我需要显示与传入的 index
值相对应的视图。
我的 FirstVC 中的代码:
func pageMenuController(_ pageMenuController: PageMenuController, didSelectMenuItem index: Int, direction: PageMenuNavigationDirection) {
NotificationCenter.default.post(name: NSNotification.Name(rawValue: "updateView"), object: nil, userInfo: ["indexValue": index])
}
我的SecondVC中的代码:
override func viewWillAppear(_ animated: Bool) {
NotificationCenter.default.addObserver(self, selector: #selector(ContViewController.incomingNotification(_:)), name: NSNotification.Name(rawValue: "updateView"), object: nil)
}
@objc func incomingNotification(_ notification: Notification) {
if let indexVal = notification.userInfo?["indexValue"] as? Int {
print(indexVal)
}
}
每当我的屏幕出现时,我都需要获取 index
值。但是当我第一次点击我的菜单项时,第二次 index
值没有显示。第三,时间到了。我错过了什么。
有什么解决办法吗?
谢谢
将您的观察者移动到 viewdidload
override func viewDidLoad() {
super.viewDidLoad()
NotificationCenter.default.addObserver(self, selector: #selector(ContViewController.incomingNotification(_:)), name: NSNotification.Name(rawValue: "updateView"), object: nil)
}