【问题标题】:How to access UIViewController's varaibles inside "func applicationWillResignActive"? Swift, iOS xcode如何在“func applicationWillResignActive”中访问 UIViewController 的变量?斯威夫特,iOS xcode
【发布时间】:2015-07-13 04:51:35
【问题描述】:

我的 UIViewController 类设置如下:

class ViewController: UIViewController {

    var currentTask: NSURLSessionTask?

    ...

}

如果用户按下主页按钮,我想这样做

self.currentTask.cancel()

但是我怎样才能从 AppDelegate.swift 访问这个变量呢?

func applicationWillResignActive(application: UIApplication) {

}

【问题讨论】:

    标签: ios xcode swift uiviewcontroller


    【解决方案1】:

    在 UIViewController 类的 viewDidLoad() 中,添加

        // Add UIApplicationWillResignActiveNotification observer
        NSNotificationCenter.defaultCenter().addObserver(
            self,
            selector: "resigningActive",
            name: UIApplicationWillResignActiveNotification,
            object: nil
        )
        NSNotificationCenter.defaultCenter().addObserver(
            self,
            selector: "becomeActive",
            name: UIApplicationDidBecomeActiveNotification,
            object: nil
        )
    

    对于 Swift 4、iOS 11,使用这个:

     NotificationCenter.default.addObserver(
        self, 
        selector: #selector(ViewController.resigningActive), 
        name: NSNotification.Name.UIApplicationWillResignActive, 
        object: nil)
    
     NotificationCenter.default.addObserver(
        self, 
        selector: #selector(ViewController.becomeActive), 
        name: NSNotification.Name.UIApplicationDidBecomeActive, 
        object: nil)
    

    最后将这两个函数添加到你的视图控制器中:

    @objc fileprivate func resigningActive() {
        print("== resigningActive ==")
    }
    
    @objc fileprivate func becomeActive() {
        print("== becomeActive ==")
    }
    

    【讨论】:

      【解决方案2】:

      对于 swift 4 及更高版本,您可以使用

      UIApplication.willResignActiveNotification
      

      UIApplication.didBecomeActiveNotification
      

      通知名称。

      【讨论】:

        猜你喜欢
        • 2023-03-17
        • 1970-01-01
        • 1970-01-01
        • 2018-09-01
        • 1970-01-01
        • 2017-07-22
        • 2017-03-24
        • 1970-01-01
        • 2016-11-23
        相关资源
        最近更新 更多