首页 > 解决方案 > UIView 扩展在应用首次启动时不起作用

问题描述

我正在使用以下 UIView 扩展:

https://github.com/snoozelag/GoneVisible

我已经成功下载了文件并添加了 Swift 文件,我正在使用扩展来隐藏(消失的方法)和显示(可见的方法)导航栏上的按钮。当应用程序第一次打开时,如果用户已经登录,我会调用此扩展程序以尝试隐藏某些按钮。但是,这并没有奏效。奇怪的是,在我切换到不同的视图并返回后,它确实有效并隐藏了按钮。

这是代码:

import UIKit

导入解析

类视图控制器:UIViewController {

@IBOutlet weak var signUpButton: UIButton!
@IBOutlet weak var logInButton: UIButton!
@IBOutlet weak var myAccountButton: UIButton!

@IBOutlet weak var bigGame: UIImageView!


private func setUpPage(){
    let currentUser = PFUser.current()
    if currentUser != nil {
      // Do stuff with the user
        self.myAccountButton.visible()
        self.signUpButton.gone()
        self.logInButton.gone()

    } else {
      // Show the signup or login screen
        self.myAccountButton.gone()
        self.signUpButton.visible()
        self.logInButton.visible()
    }
}


override func viewDidLoad() {

    setUpPage()

    super.viewDidLoad()

    self.navigationItem.hidesBackButton = true;

}

override func viewWillAppear(_
    animated: Bool) {
    setUpPage()
}

我的问题是,如何在首次打开应用程序时触发此扩展程序?

非常感谢你的帮助 :)

标签: iosswiftparsingviewdidload

解决方案


  1. super.viewWillAppear(...)覆盖继承的实现时不要忘记调用。

这可能会解决您的问题 - 但即使不是这样做也是正确的。

更新:

  1. 仅在调用 super.viewDidLoad() 后尝试调用 setUpPage()

推荐阅读