簡體   English   中英

關閉或退出后未調用ios模擬器viewDidLoad,viewDidAppear

[英]ios simulator viewDidLoad, viewDidAppear not called after close or quit

我的應用程序有一個視圖控制器和一個視圖。 當我從xcode在模擬器上運行我的應用程序時,該應用程序將加載,並且按預期方式調用了viewDidLoadviewDidAppear

  1. 當我轉到模擬器的主屏幕,然后返回到應用程序時,我希望viewDidLoad被調用,但事實並非如此。

  2. 當我按照退出應用程序,這些方向 ,並重新啟動應用程序新鮮的,我希望這兩種方法被調用,但是沒有被調用。

如果這些事件沒有觸發那些呼叫,那么什么將觸發那些呼叫? 很難相信,在真實設備上,viewDidLoad僅被調用一次-首次加載應用程序。

它說“負載”。 它的字面意思是在加載(實例化)視圖控制器時調用它。 當出現視圖時(例如將其推入或關閉其上方的其他視圖控制器時),也會調用“出現”。

您想要的是注冊以下通知

static let UIApplicationWillEnterForeground: NSNotification.Name
static let UIApplicationDidEnterBackground: NSNotification.Name
static let UIApplicationDidBecomeActive: NSNotification.Name

在視圖控制器的viewDidLoad()中添加通知。

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

然后,當應用程序再次從后台啟動時,將調用以下方法。

func applicationDidBecomeActive() {
    // Update your view controller
}

情況2:

如果您像指令一樣退出應用程序,調試會話將終止,因此斷點和日志將不起作用。 如果您退出應用程序並想查看斷點或日志,則需要在Xcode中再次點擊運行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM