我注册了我的应用程序以打开特定的文件类型(以我的情况为cvs)。因此,当用户触摸“在-打开->我的应用中打开”时
application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:])
功能被触发。在此功能中,我从文件读取数据到本地数组。
在我的View Controller中,我需要显示以上数据。那么,通知VC已接收数据并将数据传递给VC的正确方法是什么?
最佳答案
您需要发布这样的通知:
在您的Constants文件中的某个位置:
extension Notification.Name {
public static let myNotificationKey = Notification.Name(rawValue: "myNotificationKey")
}
在AppDelegate中:
let userInfo = [ "text" : "test" ] //optional
NotificationCenter.default.post(name: .myNotificationKey, object: nil, userInfo: userInfo)
在ViewController的viewDidLoad中:
NotificationCenter.default.addObserver(self, selector: #selector(self.notificationReceived(_:)), name: Notification.Name.myNotificationKey, object: nil)
视图控制器中的回调:
func notificationReceived(_ notification: Notification) {
//getting some data from userInfo is optional
guard let text = notification.userInfo?["text"] as? String else { return }
//your code here
}
关于ios - 从AppDelegate通知 View Controller 的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40165443/