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

Posted

技术标签:

【中文标题】iOS:如何使用按钮切换 Tableview 行?【英文标题】:iOS: How to use a button to switch a Tableview row? 【发布时间】:2011-07-17 18:39:44 【问题描述】:

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

【问题讨论】:

【参考方案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

【讨论】:

我还不知道如何使用细节视图控制器:( 好的,我会用一个真实的例子来更新我的答案,同时阅读this guide。 谢谢,有机会我会试试的。

以上是关于iOS:如何使用按钮切换 Tableview 行?的主要内容,如果未能解决你的问题,请参考以下文章

iOS 删除一个 tableview 行

如何删除tableView单元iOS

iOS如何从tableview单元格中获取按钮文本

如何在 iOS 的 swift 中将浮动操作按钮放在 tableView 中?

如何禁用 tableview 特定行但特定行包含 uibutton。按钮必须访问

iOS 如何设置tableview列表的cell上的的设置删除键 置顶按钮 未读信息按钮