• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

ios - 将数据从 UITableViewCell 推送到 ViewController

[复制链接]
菜鸟教程小白 发表于 2022-12-12 11:27:17 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我正在尝试将数据从 UITableViewCell 推送到另一个 View Controller 。我尝试了两种不同的方法,instantiateViewControllerWithIdentifierPrepareForSegue。在这两种情况下,ViewController 都正确加载,但没有传递数据(null 或第一个数组值)。

这是我的 instantiateViewControllerWithIdentifier 方法,当我在 ViewController 中记录变量时,它只返回 null。

-(void)tableViewUITableView *)tableView didSelectRowAtIndexPathNSIndexPath *)indexPath {
NSString *testNumber = [jobNumberArray objectAtIndex:indexPath.row];
NSLog(@"Job is... %@",testNumber);
StandardInfoViewController *controller = [self.storyboard instantiateViewControllerWithIdentifier"StandardInfoViewController"];
controller.JobNr = [jobNumberArray objectAtIndex:indexPath.row];
[self.navigationController pushViewController:controller animated:YES];
} 

为转场做准备

-(void)tableViewUITableView *)tableView didSelectRowAtIndexPathNSIndexPath *)indexPath {
   [self performSegueWithIdentifier"Details" sender: self];
}

-(void)prepareForSegueUIStoryboardSegue *)segue senderid)sender{
if([segue.identifier isEqualToString"Details"]){
    StandardInfoViewController *controller = (StandardInfoViewController *)segue.destinationViewController;
    NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
    controller.jobNumber = [jobNumberArray objectAtIndex:indexPath.row];
}
}

当我使用 prepareForSegue 调用时,我得到了数组的第一行,我理解这是因为它不知道单元格,但我不知道如何在 prepareForSegue 调用中识别单元格。

我希望这是有道理的,任何帮助或指点将不胜感激。

谢谢



Best Answer-推荐答案


如果您从 Storyboard 中的 tableView-cell 拖动 segue,您将获得单元格本身作为参数发送者。

然后您可以使用 tableView indexPathForCell:sender 来获取所选单元格的实际索引。然后正常获取你的对象。

即您将不需要实现 didSelectRowAtIndexPath


如果您仍想使用 didSelectRowAtIndexPath,只需手动将单元格作为 sender 参数传递。即:

 [self performSegueWithIdentifier"Details" 
                      sender:[self.tableView cellForRowAtIndexPath:indexPath]]

虽然您的第一个版本 instansiateViewController 应该可以工作,但从您的代码来看。


另一种模式是对单元格本身进行子类化,并让它们具有一个属性,即它们要显示的对象。然后,您可以直接从单元格中获取对象,而无需调用数据数组本身。

关于ios - 将数据从 UITableViewCell 推送到 ViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25400316/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap