如果我的应用程序被置于后台(有人单击主页按钮),然后重新打开,我想在我的ViewController中运行一个函数,并且我已经能够使用willEnterForeground()函数来获取它,但我需要在我的应用程序内打开的网址(所以说我在邮件中,我打开一个PDF,我说要在我的应用程序中打开这个pdf),为了得到它我使用我粘贴在下面的func应用程序,但是, willEnterForeground函数在应用程序函数之前运行,我将在获取url之前运行我想要的方法。有没有办法我可以以某种方式在之前调用urEnForeground函数的url?
AppDelegate.swift
func application(application: UIApplication, openURL url: NSURL, sourceApplication: String?, annotation: AnyObject) -> Bool {
myUrl = url.path
return true
}
ViewController.swift
override func viewDidLoad() {
NSNotificationCenter.defaultCenter().addObserver(self, selector: "willEnterForeground:", name: UIApplicationWillEnterForegroundNotification, object: nil)
}
deinit {
NSNotificationCenter.defaultCenter().removeObserver(self, name: nil, object: nil)
}
func willEnterForeground(notification: NSNotification!) {
methodUsingUrl()
}
答案 0 :(得分:0)
你的AppDelegate.swift应该有一个applicationDidBecomeActive()方法。根据苹果的文档,
因此,对于您的场景,将URL收集在AppDelegate中是有意义的:applicationDidEnterForeGroundNotification(或)AppDelegate:applicationDidBecomeActiveGetsCalled并让您的ViewController.swift收听UIApplicationDidBecomeActiveNotification