Swift 从.xib文件显示视图控制器

Swift 从.xib文件显示视图控制器,swift,swift3,Swift,Swift3,我试图从.xib文件中显示另一个视图控制器,但它不允许我这样做。函数内部出现错误:func tableView(\utableview:UITableView,cellForRowAt indexath:indexPath) 我就是这样声明单元格的: let cell = Bundle.main.loadNibNamed("CustomViewCell", owner: self, options: nil)?.first as! CustomViewCell weak var delega

我试图从
.xib
文件中显示另一个视图控制器,但它不允许我这样做。函数内部出现错误:
func tableView(\utableview:UITableView,cellForRowAt indexath:indexPath)

我就是这样声明
单元格的:

 let cell = Bundle.main.loadNibNamed("CustomViewCell", owner: self, options: nil)?.first as! CustomViewCell
weak var delegate: shareInfo?
然后我打电话:

cell.delegate = self
此调用导致错误:
无法将类型为“MyViewController”的值分配给类型为“shareInfo?”

那么在我的
.xib
文件中,我确实有:

protocol shareInfo : NSObjectProtocol {
    func loadNewScreen(controller: UIViewController) -> Void
}
在类
CustomViewCell
中:

 let cell = Bundle.main.loadNibNamed("CustomViewCell", owner: self, options: nil)?.first as! CustomViewCell
weak var delegate: shareInfo?
然后是方法:

@IBAction func shareLocation(_ sender: Any) {
        let vc = UIActivityViewController(activityItems: [testLabel.text!], applicationActivities: nil)
        if delegate?.responds(to: Selector(("loadNewScreen"))) != nil {
            delegate?.loadNewScreen(controller: vc)
        }
    }
有人知道发生了什么吗

提前谢谢

编辑

我在
MyViewController

func loadNewScreen(controller: UIViewController) {
        self.present(controller, animated: true) { () -> Void in

        };
    }
我一直在关注这个

解决方案


好的,我已经解决了我的问题->协议必须添加到
MyViewController:,共享信息。。。{…}

您希望如何在单元格上显示视图控制器?这没有任何意义,再想一想,如果你所做的是你真正想要的你遵循了这个思路吗@Lu_uxib.Xib文件包含您的自定义单元格-您可以在少数控制器中使用它们,而无需始终创建新单元格。我想通过
UIActivityViewController
从我的一个控制器发送信息@Neverhopess是的,即使这一行
dequeueReusableCellWithIdentifier
也没有帮助-同样的错误。@Neverhopess请编辑您的答案,告诉ppl将协议添加到类的标题中。