[英]ios simulator viewDidLoad, viewDidAppear not called after close or quit
我的應用程序有一個視圖控制器和一個視圖。 當我從xcode在模擬器上運行我的應用程序時,該應用程序將加載,並且按預期方式調用了viewDidLoad
和viewDidAppear
。
當我轉到模擬器的主屏幕,然后返回到應用程序時,我希望viewDidLoad
被調用,但事實並非如此。
當我按照退出應用程序,這些方向 ,並重新啟動應用程序新鮮的,我希望這兩種方法被調用,但是沒有被調用。
如果這些事件沒有觸發那些呼叫,那么什么將觸發那些呼叫? 很難相信,在真實設備上,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.