ios - 检测在多个 ViewController 上的首次启动 - Swift

标签 ios swift

当第一次用户从选项卡栏 Controller 打开 ViewController 时,我试图弹出一个 UIView - 我只想有一个消息弹出窗口来解释它是如何工作的,就像教程一样。

我已经实现了这个,以便第一个 ViewController 在启动时弹出,但我想让它检查我的选项卡栏上的多个 ViewController 上的首次启动。我不太确定我在这里做错了什么。该 View 有:UIImageView、UITextView 和一个 UIButton,我将用它在点击时“隐藏” View 。

  override func viewDidLoad() {
    super.viewDidLoad()

    isAppAlreadyLaunchedOnce()
   }

 func isAppAlreadyLaunchedOnce()->Bool{
    let defaults = NSUserDefaults.standardUserDefaults()

    if let isAppAlreadyLaunchedOnce = defaults.stringForKey("isAppAlreadyLaunchedOnce"){
        print("App already launched")

        return true
    }else{
        backgrdView.hidden = false
        messageView.hidden = false
        textView.hidden = false
        okButton.hidden = false
        tobysLabel.hidden = false


        return false
    }
}


@IBAction func okButtonTapped(sender: UIButton) {

    backgrdView.hidden = true
    messageView.hidden = true
    tobysLabel.hidden = true
    textView.hidden = true
    okButton.hidden = true
}

最佳答案

不是检查 isAppAlreadyLaunchedOnce,而是检查 ViewController 的启动。所以 firstVC 是 launch 添加到 userDefaults firstVC 为真。如果启动第二个,则将 secondVC 设置为 true。所以这将为各个 VC 维护 userDefaults。点击确定时设置您的 UserDefaults。然后在检查每个 VC 的 firstLaunch 时在所有 VC 中执行此操作。请为不同的 VC 保留不同的 key 。

func isAppAlreadyLaunchedOnce()->Bool{
let defaults = NSUserDefaults.standardUserDefaults()
if defaults.boolForKey("firstVC") {
    print("First VC launched")
    return true
}else{
    backgrdView.hidden = false
    messageView.hidden = false
    textView.hidden = false
    okButton.hidden = false
    tobysLabel.hidden = false
    return false
}
}


@IBAction func okButtonTapped(sender: UIButton) {
    backgrdView.hidden = true
    messageView.hidden = true
    tobysLabel.hidden = true
    textView.hidden = true
    okButton.hidden = true
    NSUserDefaults.standardUserDefaults().setBool(true, forKey: "firstVC")
}

关于ios - 检测在多个 ViewController 上的首次启动 - Swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36118049/

相关文章:

ios - 当应用程序在后台运行时,使用自定义 url 方案从 Storyboard加载 View

ios - 从 uiviewcontroller 操作 uicollectionviewcell 内的 uicollectionview

ios - UIButton 在 UIScrollView 的初始框架外不可点击

ios - 这个日志在 dbaccess(framework for ios) "error >> no such table: _entityRevision"中意味着什么?

ios - UICollectionView 消失

objective-c - 在 init 中创建后 NSMutableArray 为空(带代码)

objective-c - 在 Swift 3 中从 UUID 获取数据

ios - 参数类型不符合 Encodable

ios - NSObject 在加载 viewDidLoad() 之前似乎没有初始化

ios - 处理零?在 UITableViewCell 中