在同一视图控制器中打开(与(Swift)一起关闭)

问题描述 投票:1回答:1

我正在制作一个简单的事实应用程序(很快),所有事实都在单独的视图控制器中,当用户关闭该应用程序时,所有内容都进入主页,您必须从事实1重新开始。

我想知道如何保存用户在关闭视图控制器时使用的视图控制器,并且当他们再次通过事实继续操作时,它将从该事实开始。谢谢:)如果有人制作视频,我认为它将获得足够的观看次数来启动YouTube频道

swift view controller save nsuserdefaults
1个回答
3
投票

已更新为Swift 5

您可以使用UserDefaults,它会记住您的上一个ViewController

首先,在加载如下所示的任何视图时,必须存储一些整数:

FirstView.swift

 override func viewDidLoad() {
    super.viewDidLoad()
    UserDefaults.standard.setValue(0, forKey: "View")
    // Do any additional setup after loading the view, typically from a nib.
}

SecondViewController.swift

override func viewDidLoad() {
    super.viewDidLoad()
    UserDefaults.standard.setValue(1, forKey: "View")
    // Do any additional setup after loading the view.
}

现在在您的AppDelegate.swift中读取存储的值,并以这种方式加载与该Integer相关的ViewController:

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {

    let viewCount = UserDefaults.standard.integer(forKey: "View")
    var VC = UIViewController()
    let storyboard : UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
    println(viewCount)
    if viewCount == 0 {
        //FirstView should initiate
        VC = storyboard.instantiateViewController(withIdentifier: "First") as! ViewController
    } else if viewCount == 1 {
        //SecondView should inititate
        VC = storyboard.instantiateViewController(withIdentifier: "Second") as! SecondViewController
    } else {
        //ThirdView Should Initiate
        VC = storyboard.instantiateViewController(withIdentifier: "Third") as! ThirdViewController
    }

    self.window?.makeKeyAndVisible()
    self.window?.rootViewController = VC

    return true
}

[查看THIS示例项目以获取更多信息。

© www.soinside.com 2019 - 2024. All rights reserved.