ios - 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()
}
我的问题是,如何在首次打开应用程序时触发此扩展程序?
非常感谢你的帮助 :)
解决方案
super.viewWillAppear(...)
覆盖继承的实现时不要忘记调用。
这可能会解决您的问题 - 但即使不是这样做也是正确的。
更新:
- 仅在调用 super.viewDidLoad() 后尝试调用 setUpPage()
推荐阅读
- java - 如何从可扩展列表视图中删除子项
- python - Python nltk.util ngram 输出格式错误
- sql - 不是瀑布分组的 SQL CASE 语句
- node.js - NodeJs从附加进程执行代码
- python - 如何在python中创建一个从较小数组的末尾开始并在较小数组的开头结束的滑动窗口?
- python - 空 DataFrame 的行没有 `name`
- ios - swift / iOS中的抽象
- laravel - Laravel Sanctum 和 Postman 的 POST 请求问题
- git - 为什么使用 BFG 删除文件后仍然可以看到文件
- javascript - Electron.js:如何在不使用 will-download 事件的情况下检查 Chromium 是否支持(可以显示)文件?