簡體   English   中英

使用Swift在ios中保存應用程序狀態

[英]Saving state of application in ios using Swift

我的應用程序中有四個viewControllers。 現在假設用戶當前在第二個viewController上,並且He終止了應用程序。

現在如何保存此狀態,以便在用戶重新打開應用程序時,他應該看到第二個viewContoller,並且還應該能夠導航回第一個viewContoller。

我想到的解決方案是將當前屏幕的變量簡單地保存在userDefaults中,然后將該viewController設置為rootViewController。 但是我知道這不是正確的解決方案,我也會失去導航。 請指導我,謝謝。

如果還沒有,請創建一個名為BaseViewController的類,該類應從所有UIViewControllers擴展:

class BaseViewController: UIViewController {

    override func viewDidAppear(animated: Bool) {
        super.viewDidAppear(animated)

        // always remember last controller shown
        NSUserDefaults.standardUserDefaults.setObject(classForCoder(), forKey: "lastController")
    }
}

您可以保存控制器類名稱,一個int標識符或您想要的東西。 然后,在應用程序啟動時的應用程序委托中,您可以讀取此值並進行自定義邏輯以打開正確的控制器。

if NSUserDefaults.standardUserDefaults().stringForKey("lastController") == MyCustomViewController.classForCoder() {
    // open MyCustomViewController
}

然后,當用戶返回時,根據您的應用程序流程重定向到正確的UIViewController。

暫無
暫無

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

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