我有一个不直观的应用程序。我想截取令人困惑的屏幕截图,然后使用MSpaint编写指令和涂鸦。当用户第一次在应用程序中打开视图时,我想呈现一系列更改的屏幕截图以及“确定”按钮。按OK将关闭屏幕截图,它将不会再显示。有没有一种有效的方法来做到这一点?我是Swift和Xcode的新手。任何帮助将不胜感激
答案 0 :(得分:0)
您需要使用NSUserDefaults来保存应用程序的状态(显示或不显示教程) - NSUserDefaults在应用程序运行到设备存储之间保存数据。
然后你需要更改AppDelegate以根据你保存的值更改初始视图控制器 - 如果已经显示教程,它将不再显示。
假设你有一个叫toturialShown
的var
将其设置为false,每次运行检查其值以确定是否需要显示教程
当用户点击解除教程按钮时,使用NSUSerDefaults保存此新状态
存储
UserDefaults.standard.set(toturialShown, forKey: "toturialShownKey")
提取
UserDefaults.standard.bool(forKey: "toturialShownKey")
删除 - 如果您想从存储中完全删除它
UserDefaults.standard.removeObject(forKey: "toturialShownKey")
在applicationDidFinishWithOptions
函数中的AppDelegate上
(请注意,我没有测试代码)
var vc = ""
If toturialShown {
vc = "regularVC"
} else {
vc = "toturialVC"
}
let initialViewController = mainStoryboard.instantiateViewController(withIdentifier: vc)
let initialViewController = mainStoryboard.instantiateViewController(withIdentifier: "LoginSignupVC")
self.window?.rootViewController = initialViewController
self.window?.makeKeyAndVisible()
注意1:您需要在故事板中为您的VC添加标识符
注意2:如果您将初始VC(在故事板上)设置为常规VC,您可以更改上面的代码,只有在未显示教程的情况下以编程方式设置初始VC,才会产生稍微优雅的代码