UIView Extension在首次启动应用程序时不起作用

时间:2020-03-30 12:21:15

标签: ios swift parsing viewdidload

我正在使用以下UIView扩展名:

https://github.com/snoozelag/GoneVisible

我已经成功下载了文件并添加了Swift文件,并且我正在使用扩展名在导航栏上隐藏(消失的方法)和显示(可见的方法)按钮。当应用首次打开时,如果用户已经登录,我会调用此扩展名以试图隐藏某些按钮。但是,此操作一直没有进行。奇怪的是,在我切换到其他视图并返回时,它确实起作用并隐藏了按钮。

代码如下:

import UIKit

导入解析

ViewController类: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()
}

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

非常感谢您的帮助:)

1 个答案:

答案 0 :(得分:0)

  1. 当您重写继承的实现时,请不要忘记调用super.viewWillAppear(...)

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

更新:

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