8月 28, 2017

『Swift』使用AppDelegate實現跨App的onActiviyForResult


當我們的ios App跳轉至其他App時,例如設定或相簿等等

再從其他App回到我們的App時,到底該怎麼知道我們的App是否又被開起來了?



我們會先在欲返回前景的ViewController中的ViewDidLoad加入一個監聽器(Observer):
NotificationCenter.default.addObserver(self, selector: #selector(OpenMyAPP(notification:)), name: NSNotification.Name("OPEN") , object: nil)

然後在這個ViewController的class中加入要實作的function:
@objc func OpenMyAPP(notification: NSNotification) {
    print("Open!!!!!!")
}

關於NotificationCenter的使用教學可以點此觀看唷

接著到AppDelegate中的applicationWillEnterForeground加入post NotificationCenter即可
import UIKit

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: 
        [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
            return true
    }

    func applicationWillResignActive(_ application: UIApplication) {
       
    }

    func applicationDidEnterBackground(_ application: UIApplication) {
    
    }

    func applicationWillEnterForeground(_ application: UIApplication) {
        //當App回到前景時
        NotificationCenter.default.post(name: Notification.Name("OPEN"), object: nil)
    }

    func applicationDidBecomeActive(_ application: UIApplication) {
        
    }

    func applicationWillTerminate(_ application: UIApplication) {
        
    }


}



沒有留言:

Related Posts Plugin for WordPress, Blogger...