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