我实际上找不到一个教程,告诉我如何构建一个使用静态单元格的应用程序; 可点击的单元格.根据几个过时的发布和对象c答案,我把一些东西放在一起.我的问题是,当我点击一个单元格时,我得到的staticDemoTableCell
是没有成员present
.
我在UIViewController中嵌入了一个表控制器.对于那个单元格(目前只有一个),我创建了一个类:
class staticDemoTableCell: UITableViewCell, UITableViewDelegate { @IBOutlet weak var tableView: UITableView! override func awakeFromNib() { [...] tableView.delegate = self } func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { print("clicked") // Works when the cell is clicked // self.present() do not work. I need to present another viewcontroller when this cell is clicked } }
有些东西不合适,因为每个单元都是一个类?
我真的需要知道我是否采用了正确的方法来做到这一点.我真正想要的更多是这样的.你见过ie:分组交易星期一:列表,星期二:列表等.每个单元格都可以点击,就像iOS设备的设置一样.任何指针都将非常感激.
所以你可以做到以下几点.设置表格视图,然后使单元格保持静态,一旦完成,您需要确保知道将要有多少部分.这取决于您的设计或您想要实现的目标.
然后你可以做这样的事情:
如果您有多个部分,并且部分1有多个单元格.第2节只有一个单元格.
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { switch indexPath.section { case 1: switch indexPath.row { case 0: // Do something case 1: // Do something default: break } case 2: // Do something default: break } }
如果您只有一个包含两个单元格的部分,则可以执行以下操作:
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { switch indexPath.row { case 0: // Do something case 1: // Do something default: break } }
我希望这有助于解决您的问题.祝好运
如果表视图仅包含静态单元格,则更容易:
在Interface Builder中,选择表视图并设置Content
为Static Cells
在控制器类中创建IBOutlet
s和IBAction
s并连接它们.
不需要实现表视图数据源方法和子类化单元.