我想通过使用NSNotificationCenter来调用方法。它们不会调用Swift 2.0。我是斯威夫特的新手。请帮忙 。任何帮助都会得到解决。
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
let landingView = NewsViewController(nibName : "NewsViewController", bundle: nil)
NSNotificationCenter.defaultCenter().postNotificationName("NotificationIdentifier", object: nil)
self.navigationController?.pushViewController(landingView, animated: true)
}
在我的新闻控制器中
override func viewDidLoad() {
super.viewDidLoad()
NSNotificationCenter.defaultCenter().addObserver(self, selector: "methodOfReceivedNotification:", name:"NotificationIdentifier", object: nil)
}
func methodOfReceivedNotification(notification: NSNotification){
}
override func viewWillDisappear(animated: Bool) {
NSNotificationCenter.defaultCenter().removeObserver(self, name: "NotificationIdentifier", object: nil)
}
答案 0 :(得分:1)
您调用此方法
NSNotificationCenter.defaultCenter().postNotificationName("NotificationIdentifier", object: nil)
在您的观察者创建之前。因此,请在此方法self.navigationController?.pushViewController(landingView, animated: true)
完成后发布您的通知。你可以参考这篇文章:
Completion handler for UINavigationController "pushViewController:animated"?
希望有所帮助。