我正在尝试从.xib
文件中呈现另一个视图控制器,但它不允许我。我在函数内部收到错误:func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath)
这就是我宣布cell
:
let cell = Bundle.main.loadNibNamed("CustomViewCell", owner: self, options: nil)?.first as! CustomViewCell
然后我打电话给:
cell.delegate = self
此致电错误:Cannot assign value of type "MyViewController" to type "shareInfo?"
然后在我的.xib
文件中,我确实有:
protocol shareInfo : NSObjectProtocol {
func loadNewScreen(controller: UIViewController) -> Void
}
课程内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
};
}
我正在关注此solution
解
好的,我已经解决了我的问题 - >必须将协议添加到MyViewController : ... , shareInfo, ... { ... }
中。