有没有办法将分段的tableview更改为drilldown tableview?

时间:2010-12-03 03:12:50

标签: objective-c ios cocoa-touch uitableview datasource

我有一个带有plist的分段tableview,它是一个充满字典的数组。 在我的应用程序中,所有部分和单元格都显示在第一个视图中。 但现在我需要改变它看起来像这样:部分必须成为单元格(带有部分名称)。当您按下此单元格时,部分中包含的单元格已出现。

有没有办法在不重写代码的情况下做到这一点?

感谢和抱歉noob问题:o)

2 个答案:

答案 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中的信息来填充它。希望这会有所帮助。