iOS:如何使用按钮切换Tableview行?

时间:2011-07-17 18:39:44

标签: objective-c ios uitableview button uiview

我正在创建一个应用程序,其中我有一个在应用程序启动时加载的Tableview。点击一行后,我会看到一个带有导航控制器和工具栏的视图。在工具栏上,我制作了两个前后按钮(后箭头和前箭头)。如何编码这些按钮来选择表格的下一行和前一行(返回前一行,前一行为下一行)?

1 个答案:

答案 0 :(得分:1)

您可能希望使表视图控制器成为详细视图控制器的委托,然后定义委托协议以在按下这些按钮时告知委托。这样,表视图控制器可以使用表视图执行任何操作。

一种方法:

@implementation MyTableViewController
...
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)p {
    MyDetailViewController *vc = [[MyDetailViewController alloc] initWithRow:p.row];
    // configure vc
    vc.delegate = self;
    [self.navigationController pushViewController:vc animated:YES];
    [vc release];
}

- (void)myDetailViewControllerDidSelectPrevious:(MyDetailViewController *)vc {
    // use vc.row-1 to update the view controller or push a new one
}
- (void)myDetailViewControllerDidSelectNext:(MyDetailViewController *)vc {
    // use vc.row+1 to update the view controller or push a new one
}
@end

@protocol MyDetailViewControllerDelegate
- (void)myDetailViewControllerDidSelectPrevious:(MyDetailViewController *)vc;
- (void)myDetailViewControllerDidSelectNext:(MyDetailViewController *)vc;
@end
@implementation
...
- (void)nextButtonPressed:(id)sender {
    [self.delegate myDetailViewControllerDidSelectNext:self];
}
- (void)previousButtonPressed:(id)sender {
    [self.delegate myDetailViewControllerDidSelectPrevious:self];
}
@end