UItableViewCell中存在的函数是否有替代方法?



我想从UITableViewCell(Xib(导航到UIViewController,但是当我尝试使用当前Value of type 'TableViewCell' has no member 'present因此,如果有人熟悉可以帮助我导航的功能,请帮助我:)。

谢谢你的时间

UITableViewCell 无法呈现 viewcontroller。请将视图控制器存储到表视图单元格中的变量。并用它来呈现。 或者使用委托函数并使用 selfdidSelectRowAt来呈现(如果您的事件通过单元格中的按钮触发,或者编写您的自定义单元格委托(

使ViewController符合UITableViewDelegate协议,然后在ViewController代码中使用委托方法:func tableView(UITableView, didSelectRowAt: IndexPath)并在此方法中执行/呈现 segue 或您拥有的任何其他类型的导航。

import UIKit
class ViewController: UIViewController, UITableViewDelegate {
override func viewDidLoad() {
super.viewDidLoad()
}   
func tableView(UITableView, didSelectRowAt: IndexPath) {
// navigation logic here
}

}

在自定义UITableViewCell中使用closure来处理这种情况。

在您的自定义UITableViewCell创建一个handler并在cell内敲击button时调用它,即

class CustomCell: UITableViewCell {
var handler: (()->())?
@IBAction func onTapButton(_ sender: UIButton) {
handler?()
}
}

现在,在创建cellcellForRowAt设置handler,即

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! CustomCell
cell.handler = {
//present your controller here...
}
return cell
}

相关内容

  • 没有找到相关文章

最新更新