我有一个带有plist的分段tableview,它是一个充满字典的数组。 在我的应用程序中,所有部分和单元格都显示在第一个视图中。 但现在我需要改变它看起来像这样:部分必须成为单元格(带有部分名称)。当您按下此单元格时,部分中包含的单元格已出现。
有没有办法在不重写代码的情况下做到这一点?
感谢和抱歉noob问题:o)
答案 0 :(得分:2)
据我所知,您仍然希望使用一个tableview,其中除了一个以外的所有部分都隐藏了单元格。在这种情况下,您可以这样做:
-tableView:headerForSection:
并在要返回的视图上放置一个按钮。在按钮标签上写下部分编号。使用参数(UIButton *)sender
向按钮添加操作:` - (void)headerPressed:(UIButton *)sender -tableView:heightforHeaderInSection:
。-(void) headerPressed:(UIButton *)sender
将发件人标记写入成员整数并重新加载表格视图。-tableview:numberOfRowsInSection:
中,如果int部分不等于您保存的成员整数,则返回0。如果相等,则返回该部分中的行数。答案 1 :(得分:1)
您需要创建两个表视图类。一个用于保存节名称的一个,另一个用于保存每个节的行。在第一个中,从plist中检索节名称并相应地填充表中的行。然后在- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
方法中,您需要将另一个视图控制器推送到导航堆栈(类似于此 - 在模板代码中提供):
// Navigation logic may go here. Create and push another view controller.
<#DetailViewController#> *detailViewController = [[<#DetailViewController#> alloc] initWithNibName:@"<#Nib name#>" bundle:nil];
// ...
// Pass the selected object to the new view controller.
[self.navigationController pushViewController:detailViewController animated:YES];
[detailViewController release];
然后,对于其他表视图类,您可以通过读取与被点击部分对应的plist中的信息来填充它。希望这会有所帮助。