App Delegate:服务调用从后台返回
App Delegate : Service call coming back from background
我想在应用程序返回前台时调用 Web 服务。我是从 didBecomeActive()
调用它的。
处理它并将数据传递给根视图控制器的最佳方法是什么?
你有两个选择。获取 rootViewController 并传递数据,处理它。
func applicationDidBecomeActive(_ application: UIApplication) {
// 1
let rootVC1 = self.window?.rootViewController
// 2
let rooVC2 = application.windows.first?.rootViewController
...
/*
pass data to rootVC1 or rootVC2
*/
}
由于您要传递的数据总是转到同一个视图控制器,因此您应该在该视图控制器而不是应用程序委托中设置观察者。这样一来您就不需要传递任何数据。
class YourViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
NotificationCenter.default
.addObserver(self, selector: #selector(activityHandler(_:)),
name: UIApplication.didBecomeActiveNotification, object: nil)
}
@objc func activityHandler(_ notification: Notification) {
//Call your web service here
}
}
我想在应用程序返回前台时调用 Web 服务。我是从 didBecomeActive()
调用它的。
处理它并将数据传递给根视图控制器的最佳方法是什么?
你有两个选择。获取 rootViewController 并传递数据,处理它。
func applicationDidBecomeActive(_ application: UIApplication) {
// 1
let rootVC1 = self.window?.rootViewController
// 2
let rooVC2 = application.windows.first?.rootViewController
...
/*
pass data to rootVC1 or rootVC2
*/
}
由于您要传递的数据总是转到同一个视图控制器,因此您应该在该视图控制器而不是应用程序委托中设置观察者。这样一来您就不需要传递任何数据。
class YourViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
NotificationCenter.default
.addObserver(self, selector: #selector(activityHandler(_:)),
name: UIApplication.didBecomeActiveNotification, object: nil)
}
@objc func activityHandler(_ notification: Notification) {
//Call your web service here
}
}