我想从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?()
}
}
现在,在创建cell
时cellForRowAt
设置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
}