gpt4 book ai didi

ios - 实例成员 'navigationItem' 不能用于类型 'MainViewController'

转载 作者:可可西里 更新时间:2023-11-01 01:30:15 24 4
gpt4 key购买 nike

似乎无法使用 xcode8 摆脱这种恐惧:

编译失败并显示消息:实例成员“navigationItem”不能用于类型“MainViewController”

class MainViewController: UITableViewController {

private static var __once: () = {
let loginButton: UIBarButtonItem = UIBarButtonItem(title: nil, style: .done, target: self, action: nil)
MainViewController.navigationItem.rightBarButtonItem = loginButton
}()

这是调用它的函数:

func setupRightBarButtonItem() {
struct Static {
static var onceToken: Int = 0
}

_ = MainViewController.__once

if (AWSIdentityManager.default().isLoggedIn) {
navigationItem.rightBarButtonItem!.title = NSLocalizedString("Sign-Out", comment: "Label for the logout button.")
navigationItem.rightBarButtonItem!.action = #selector(MainViewController.handleLogout)
}
}

最佳答案

看起来您是在第一次调用 setupRightBarButtonItem 时尝试创建右栏按钮项目,但我不确定您是从哪里想到这段代码的。

信息很清楚,navigationItem 是一个实例属性,您正试图将其用作类属性。

为什么不使用更直接的:

func setupRightBarButtonItem() {

if navigationItem.rightBarButtonItem == nil {
navigationItem.rightBarButtonItem =
UIBarButtonItem(title: nil, style: .done, target: self, action: nil)
}

if (AWSIdentityManager.default().isLoggedIn) {
navigationItem.rightBarButtonItem!.title = NSLocalizedString("Sign-Out", comment: "Label for the logout button.")
navigationItem.rightBarButtonItem!.action = #selector(MainViewController.handleLogout)
}
// You probably need an `else` clause here to update the button if the user isn't logged in?
}

关于ios - 实例成员 'navigationItem' 不能用于类型 'MainViewController',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39552619/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com