在表格中选择一行时,如何通知详细视图选择了哪一行?
Posted
技术标签:
【中文标题】在表格中选择一行时,如何通知详细视图选择了哪一行?【英文标题】:When a row is selected in a table, how can I inform the detail view about which row was selected? 【发布时间】:2011-02-21 23:18:35 【问题描述】:在我的应用程序中,我使用了一个导航控制器,它使用表格视图来组织数据。现在,当用户选择一行时,会将详细视图推送到堆栈上。无论选择哪一行,此详细视图都是相同的。唯一的区别是,根据选择的行,我的详细视图将从保存的 .plist 文件中加载与所选行相对应的数据。
所以我想知道如何通知我的详细视图在我的表格视图中选择了哪一行。
【问题讨论】:
【参考方案1】:你不能简单地在视图控制器中创建一个自定义的 init 方法吗? 例如,我使用以下方法将选定的日期传递给 ViewController:
..界面
- (id)initWithNibNameandDate:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil dateValue:(NSDate *) selectedDate;
...实现
- (id)initWithNibNameandDate:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil dateValue:(NSDate *) selectedDate
self.selDate = selectedDate;
return [super initWithNibName:nibNameOrNil bundle:nil];
传递的数据类型并不重要。
希望这会有所帮助。
【讨论】:
【参考方案2】:在您的表视图控制器中,当用户选择一行时会调用 didSelectRowAtIndexPath: 方法。返回值 indexPath 提供所选行的节号和行号。从中,您可以计算出有问题的项目(例如,它是您从中获取它们的数组中的第 n 个),并且可以传递给详细视图控制器。
【讨论】:
【参考方案3】:实际上它就像在细节视图控制器中添加一个 NSUInteger ivar 一样简单,然后在我将视图推送到堆栈之前简单地从表委托方法中设置它的值。谢谢你们的回答。
【讨论】:
以上是关于在表格中选择一行时,如何通知详细视图选择了哪一行?的主要内容,如果未能解决你的问题,请参考以下文章