问题:“PrincipalViewController”在 swift 中没有名为“revealViewController”的成员

Posted

技术标签:

【中文标题】问题:“PrincipalViewController”在 swift 中没有名为“revealViewController”的成员【英文标题】:Trouble: 'PrincipalViewController' does not have a member named 'revealViewController' in swift 【发布时间】:2015-03-05 08:20:02 【问题描述】:

我正在使用 Swift 中的 SWRevealViewController 创建侧边栏菜单。问题是我收到以下错误:“PrincipalViewController”没有名为“revealViewController”的成员

我正在处理的代码是:

class PrincipalViewController: UIViewController 
@IBOutlet weak var menuButton:UIBarButtonItem!

override func viewDidLoad() 
    super.viewDidLoad()

    // This is the line with the error
    if self.revealViewController() != nil 

        menuButton.target = self.revealViewController()
        menuButton.action = "revealToggle:"
        self.view.addGestureRecognizer(self.revealViewController().panGestureRecognizer())

        // Uncomment to change the width of menu
        //self.revealViewController().rearViewRevealWidth = 62
    


有什么想法吗?非常感谢

【问题讨论】:

什么是self.revealViewController() 我认为是侧边栏的视图控制器。但是我在正在运行的演示应用程序中进行了搜索,并且没有引用该视图 这是我下载代码的网站 (appcoda.com/sidebar-menu-swift) 那你为什么在属性后使用()? 【参考方案1】:

我刚刚发现了问题。应用中有子objective-c代码,桥接头配置不好。非常感谢

【讨论】:

【参考方案2】:

从 Cocoapods >0.36 开始,如果您使用 Cocoapods 将 SWRevealViewController 添加到您的项目中,请不要弄乱桥接头。只需在您的 Podfile 中取消注释 use_frameworks!。然后将import SWRevealViewController 放入您的ViewController.swift 文件中。 Here's a great article that explains it。

【讨论】:

【参考方案3】:

为不理解答案解释的其他人澄清这一点...确保桥接头文件连接到目标 C 桥接头文件的路径,该文件位于项目的构建设置中的 Swift 编译器中...

这里是检查是否存在的方法的链接,请查看手动添加图片的方法...

http://www.learnswiftonline.com/getting-started/adding-swift-bridging-header/

【讨论】:

以上是关于问题:“PrincipalViewController”在 swift 中没有名为“revealViewController”的成员的主要内容,如果未能解决你的问题,请参考以下文章

P问题,NP问题,NPC问题,NP-hard问题

P问题NP问题和NPC问题

网络流24题(好大的坑啊)

算法---- 01背包问题和完全背包问题LeetCode系列问题题解

算法---- 01背包问题和完全背包问题LeetCode系列问题题解

算法---- 01背包问题和完全背包问题LeetCode系列问题题解