很好地解释了你想要做什么。这就是我解决这个问题的方法,我认为在不给你无意义的代码并回答你可能遇到的任何编码问题的情况下解释它会更容易。
我会将表视图数据源设置为数组数组。这个想法是数组中的每个索引都代表一个州,因此包含许多城市,因此索引包含一个数组(城市数组)。父数组(州)在开始时为空,但稍后将填充它的(城市)数组将填充适当的城市。
然后我将设置表格视图以包含部分(我很想在这里放代码,但请继续阅读)。这些部分将代表城市。(NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
然后,您可以使用委托填写带有部分的表格视图 。在第一次运行时,您可以在每个部分使用一个单元格填充实际表格(可能使用“扩展”或“更多”一词和向下箭头)。当用户触摸该单元格时,您可以使用 didselectrowatindexpath 知道哪个部分被触摸(indexpath 对象包含该部分),现在您知道它是哪个部分,只需通过添加该部分的城市数组来修改数据源数组数组(父数组)并更新表格视图。
这基本上为您的 tableview 提供了相应的样式和感觉。它很容易实现,但需要一点代码。我已经这样做了,并且愿意提供您可能需要的代码,最棘手的部分是以正确的方式更新 tableview。
编辑代码:
我按照上面的解释做了一个简单的例子。代码在Github上,如有任何问题,请随时提出。