我使用带有 Storyboard的 Xcode 4.5 构建了一个应用程序。应用程序第一次启动时,我希望初始 View Controller 出现,其中包含必须接受才能继续的条款和条件。之后,我希望应用程序启动并跳过第一个 View Controller 并转到第二个。
我知道我必须使用 NSUserDefaults 类和一些效果: if ([[NSUserDefaults 标准...] boolForKey:@"iHaveAcceptedTheTerms"])
但是我从来没有用过这个类,也不知道如何实现这段代码。有人可以分享如何执行此操作的细节吗?
最佳答案
为了使这个问题保持最新状态,这里是已接受答案的 Swift 版本。
第一步
在您的App Delegate中,添加以下函数。
func applicationDidFinishLaunching(application: UIApplication) {
if !NSUserDefaults.standardUserDefaults().boolForKey("TermsAccepted") {
NSUserDefaults.standardUserDefaults().setBool(false, forKey: "TermsAccepted")
}
}
如果这是第一次启动,这实际上会将您的 TermsAccepted Bool 设置为 false(因为 Bools 默认为 false)。
第 2 步
在您的 Root View Controller (当您的应用程序启动时加载的 View Controller )中,您必须有一种方法来查看条款是否已被接受并采取相应的行动。
添加以下函数。
override func viewDidAppear(animated: Bool) {
if NSUserDefaults.standardUserDefaults().boolForKey("TermsAccepted") {
// Terms have been accepted, proceed as normal
} else {
// Terms have not been accepted. Show terms (perhaps using performSegueWithIdentifier)
}
}
第 3 步
一旦用户接受您的条件,您希望将 TermsAccepted Bool 更改为 true。因此,在处理条款接受的方法主体中,添加以下行。
NSUserDefaults.standardUserDefaults().setBool(true, forKey: "TermsAccepted")
希望对您有所帮助!
洛奇
关于ios - 如何仅在首次启动时显示 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12878162/