objective-c - iOS:如何使用按钮来切换 Tableview 行?

标签 objective-c ios uitableview button uiview

我正在制作一个应用程序,其中有一个在应用程序启动时加载的 Tableview。单击一行后,我会看到一个带有导航 Controller 和工具栏的 View 。在工具栏上,我制作了两个用于后退和前进的按钮(后退箭头和前进箭头)。我如何编写这些按钮以选择表格的下一行和上一行(返回上一行,前进下一行)?

最佳答案

您可能希望让您的 TableView Controller 成为详细信息 View Controller 的委托(delegate),然后定义委托(delegate)协议(protocol)以在这些按钮被按下时通知委托(delegate)人。这样 TableView Controller 就可以对 TableView 做任何它需要做的事情。

一种方法:

@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

关于objective-c - iOS:如何使用按钮来切换 Tableview 行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6725926/

相关文章:

iphone - 如何通过单击按钮更改数字时钟的时间格式?

html - 允许用户在 Objective C 中创建和查看 HTML 文件?

ios - 为什么我在 Swift 的 UITableView 中看不到任何单元格?

ios - 可定制的表格 View 单元格滑动以停止完全展开?

swift - 在 queryForTable() 中解析查询多键 swift

objective-c - "sending a message to nil"是什么意思,为什么是特例?

php - PHP 和 Objective-C 之间的 JSON 对象

ios - 无法将静态 UITableViewCell 添加到 TableView 中

ios - 如何使用 JASON pod 解析枚举?

ios - 滚动或重新加载表格 View 后查看位置变化