使用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)
}
}
答案 0 :(得分:2)
看起来您第一次调用<table>
<tbody>
<tr>
<td>HI</td>
<td>HI</td>
</tr>
<tr>
<td>HI</td>
<td>HI</td>
</tr>
</tbody>
</table>
时尝试创建正确的栏按钮项,但我不确定您在哪里提出此代码。
消息非常清楚,setupRightBarButtonItem
是一个实例属性,您尝试将其用作类属性。
为什么不直接使用:
navigationItem