如果有人能正确地向我解释通知中心,通知中心的声明和用法,那就太好了
let nc = NotificationCenter.default
nc.post(name: Notification.Name("UserLoggedIn"), object:nil)
我们在哪里声明呢?
答案 0 :(得分:1)
假设您有2个ViewController
现在的情况是,当您从CreateFeedController
创建新的Fees Post时,新创建的feed将在FeedListController
中刷新。为此,您可以使用NotificationCenter
。
您也可以根据自己的招聘情况使用它。
为此,您需要addObserver
中的Viewcontroller
中要在发生某些事情时执行一些操作,以便可以在FeedListController
中添加如下所示的观察者。
NotificationCenter.default.addObserver(self, selector: #selector(refreshFeedList), name: NSNotification.Name(rawValue: "refreshFeedList"), object: nil)
FeedListController
中的方法可从API获取新数据
@objc func refreshFeedList() {
// Call Your APO to get New Data
}
创建新的Feed后,您需要在CreateFeedController
中发布如下内容。
NotificationCenter.default.post(name: NSNotification.Name("refreshFeedList"), object: nil)
一旦发生火灾,它将调用FeedListController
refreshFeedList
并自动加载新数据。
答案 1 :(得分:0)
提到的代码将从您想要广播通知的地方发送。
将观察者添加到要根据该通知执行任何操作的班级
示例
收件人:
class ViewController: UIViewController {}
override func viewDidLoad() {
super.viewDidLoad()
addObservers()
}
deinit {
removeObservers()
}
func applicationWillEnterForegroundNotification(_ notification: Notification) {
}
fileprivate func addObservers() {
NotificationCenter.default.addObserver(self, selector: #selector(ViewController.applicationWillEnterForegroundNotification(_:)), name: NSNotification.Name.UIApplicationWillEnterForeground, object: nil)
}
fileprivate func removeObservers() {
NotificationCenter.default.removeObserver(self, name: NSNotification.Name.UIApplicationWillEnterForeground, object: nil)
}
}
广播公司:
NotificationCenter.default.post(name: NSNotification.Name.UIApplicationWillEnterForeground, object: nil)