ios - 如何仅在首次启动时显示 View ?

标签 ios xcode

我使用带有 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/

相关文章:

ios - @selector 的多个参数

ios - 不能在 inout 函数中使用 SKShapeNode

iphone - 如何捕获 iPhone 上的所有程序中止错误?

ios - 复制 Xcode 6.0 项目

xcode - 如何在 Swift 中使用 Parse 植入分区 TableView

ios - 防止音乐在应用程序中停止

ios - 从 UIButton 编辑 UItextview

ios - 录制语音的按钮操作

ios - Apple 证书已过期且有效

iphone - 将背景图片添加到 Outlet Collection