将数据从自定义表格视图单元格传递到 UIView 控制器

Posted

技术标签:

【中文标题】将数据从自定义表格视图单元格传递到 UIView 控制器【英文标题】:Passing Data from custom tableview cell to UIView controller 【发布时间】:2017-07-03 10:03:14 【问题描述】:

我正在关注这个 [博客][1],用于将数据从表格视图中的自定义单元格传递到视图控制器。自定义单元格正在从响应中获取数据,我必须在自定义单元格中显示其中的一些数据,而在详细视图控制器中显示其余数据。谁能确定我的代码中实际问题出在哪里?从 segue 传递数据。

    - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
    if ([segue.identifier isEqualToString:@"ShowDetail"]) 
        //Do something
        NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
        ShowViewController *destViewController = segue.destinationViewController;
         destViewController.tites = [_Title objectAtIndex:indexPath.row];
         destViewController.prce = [_Price objectAtIndex:indexPath.row];
         destViewController.ara = [_LandArea objectAtIndex:indexPath.row];
         destViewController.phon = [_Phone objectAtIndex:indexPath.row];
         destViewController.citi = [_City objectAtIndex:indexPath.row];
         destViewController.loc = [_location objectAtIndex:indexPath.row];
         destViewController.tye = [_type objectAtIndex:indexPath.row];
         destViewController.Idss = [_Id objectAtIndex:indexPath.row];
         destViewController.nam = [_name objectAtIndex:indexPath.row];
         destViewController.emal = [_email objectAtIndex:indexPath.row];
         destViewController.roomss = [_rooms objectAtIndex:indexPath.row];
         destViewController.wash = [_washroom objectAtIndex:indexPath.row];
         destViewController.flloors = [_floor objectAtIndex:indexPath.row];
         destViewController.stat = [_status objectAtIndex:indexPath.row];
         destViewController.descrp = [_descrip objectAtIndex:indexPath.row];
         destViewController.countryy = [_country objectAtIndex:indexPath.row];

    

这是我单击单元格时遇到的错误。

由于未捕获的异常“NSUnknownKeyException”而终止应用程序, 原因: '[ setValue:forUndefinedKey:]:这个类不是键值 符合密钥 ID 的编码。首先抛出调用栈:

这是我的ShowViewcontroller.h 文件。

更改代码。

enter image description here

【问题讨论】:

你当前的输出是什么? 你是如何在 ShowViewController 中声明 Idss 的? 随机指定一个名称来访问值。 @AravindAR 不,你可能在 ShowViewController 中声明了 Idss,只是显示它的代码 您已经从 ShowViewController 中删除了任何 Outlet,请正确检查 outlet 【参考方案1】:

您可能已将您的outlet 连接从storyboard 删除到您的ViewController 请检查您的插座是否连接正确。 ⚠️

必须有一个 id 属性首先创建并由您删除,在您的 showViewController

【讨论】:

它现在向我显示此错误,-[StringData length]: unrecognized selector sent to instance 0x608000138b00 2017-07-03 15:41:20.922 PK.House[10411:854053] *** 终止应用由于未捕获的异常 'NSInvalidArgumentException',原因:'-[StringData length]: unrecognized selector sent to instance 0x608000138b00' ShowViewController 在此显示您的代码,您现在可以检查您的 ViewDidLoad 是否正在调用您的 ShowViewController【参考方案2】:

检查 ShowViewController 中的属性,因为 destViewController.Idss(颜色显示错误)

 @property(nonatomic,strong) NSString *Idss; // Make as this and 
 @synthesize Idss

还要更改 [_Id objectAtIndex:indexPath.row] // 将 _id 数组名称替换为另一个名称

【讨论】:

进行更改后出现相同的错误。@Lalit kumar 我已经编辑了我的问题并添加了屏幕截图,请查看。@Lalit kumar

以上是关于将数据从自定义表格视图单元格传递到 UIView 控制器的主要内容,如果未能解决你的问题,请参考以下文章

从自定义单元格重新加载表格视图数据

Swift - 从自定义单元格传递数据

如何在 Swift 中将值从自定义单元格设置/传递到视图控制器

从自定义 tableView 单元格文本字段中获取数据

从自定义单元格 iPhone 中的 textField 获取值

Swift - 从自定义单元格和单元格数据传递到另一个控制器