Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/112.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
onRestart()的iOS等效项_Ios_Swift - Fatal编程技术网

onRestart()的iOS等效项

onRestart()的iOS等效项,ios,swift,Ios,Swift,Android上使用的onRestart()的iOS等价物是什么 onRestart()在当前活动重新显示给用户时被调用(用户已导航回该活动)。我相信您需要视图将出现方法: override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) //your code here } 每次显示视图之前都会调用它。因此,当视图第一次显示时也会调用它。 如果要避免在第一次调用viewwillbee

Android上使用的
onRestart()
的iOS等价物是什么


onRestart()
在当前活动重新显示给用户时被调用(用户已导航回该活动)。

我相信您需要
视图将出现
方法:

override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)
    //your code here
}
每次显示视图之前都会调用它。因此,当视图第一次显示时也会调用它。
如果要避免在第一次调用
viewwillbeen
时运行代码,则必须添加一个flag属性,并检查它以前是否已设置过。

我相信您需要
viewwillbeen
方法:

override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)
    //your code here
}
每次显示视图之前都会调用它。因此,当视图第一次显示时也会调用它。
如果要避免在第一次调用
viewwillbeen
时运行代码,则必须添加一个flag属性,并检查它以前是否已设置过。

如果要在出现问题的场景进入视图时尝试捕获,则可能需要注意两种情况:

  • 如果您从应用程序内切换到此场景(或取消/弹出到此场景)。在这种情况下,使用
    视图将显示

    override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(animated)
    
        update()     // your routine for updating what is displayed to the user
    }
    
  • 如果您的应用程序正在运行,并且您按下“主页”按钮(或转到其他应用程序),然后返回到您的应用程序(在其终止之前),则不会调用
    viewdide
    。要检测该场景,您可以观察
    .uiapplicationIDBecomeActive

    private var observer: NSObjectProtocol?
    
    override func viewDidLoad() {
        super.viewDidLoad()
    
        observer = NotificationCenter.default.addObserver(forName: .UIApplicationDidBecomeActive, object: nil, queue: nil) { [weak self] notification in
            self?.update()
        }
    }
    
    deinit {
        if let observer = observer {
            NotificationCenter.default.removeObserver(observer)
        }
    }
    

  • 如果您试图在所讨论的场景进入视野时进行拍摄,那么您可能会关注以下两种情况:

  • 如果您从应用程序内切换到此场景(或取消/弹出到此场景)。在这种情况下,使用
    视图将显示

    override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(animated)
    
        update()     // your routine for updating what is displayed to the user
    }
    
  • 如果您的应用程序正在运行,并且您按下“主页”按钮(或转到其他应用程序),然后返回到您的应用程序(在其终止之前),则不会调用
    viewdide
    。要检测该场景,您可以观察
    .uiapplicationIDBecomeActive

    private var observer: NSObjectProtocol?
    
    override func viewDidLoad() {
        super.viewDidLoad()
    
        observer = NotificationCenter.default.addObserver(forName: .UIApplicationDidBecomeActive, object: nil, queue: nil) { [weak self] notification in
            self?.update()
        }
    }
    
    deinit {
        if let observer = observer {
            NotificationCenter.default.removeObserver(observer)
        }
    }