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

时间:2016-09-17 23:15:43

标签: ios iphone swift xcode8

使用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)
            }
    }

1 个答案:

答案 0 :(得分:2)

看起来您第一次调用<table> <tbody> <tr> <td>HI</td> <td>HI</td> </tr> <tr> <td>HI</td> <td>HI</td> </tr> </tbody> </table> 时尝试创建正确的栏按钮项,但我不确定您在哪里提出此代码。

消息非常清楚,setupRightBarButtonItem是一个实例属性,您尝试将其用作类属性。

为什么不直接使用:

navigationItem