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将协议添加到类的标题中。