在视图控制器segue之间传递数据[重复]

2023-12-07

我的第一个视图控制器,AllAthletes,是我所有核心数据实体的 uitableview。它在字幕样式表格单元格中显示实体“运动员”及其属性,例如名字等。当您单击视图单元格时,我希望此视图控制器传递所选实体的信息,但我'我不确定如何将此信息(索引路径的托管对象、实体、属性等)传递到详细视图控制器。有人可以指出我正确的方向吗?

Allathletes.m

-(void)viewWillAppear:(BOOL)animated{
    AppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];
    _managedObjectContext = [appDelegate managedObjectContext];

    NSFetchRequest *request = [[NSFetchRequest alloc] init];
    NSEntityDescription *athlete = [NSEntityDescription entityForName:@"Athlete" inManagedObjectContext:_managedObjectContext];
    [request setEntity:athlete];
    NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"first" ascending:YES];
    NSArray *sortDescriptors = [[NSArray alloc]initWithObjects:sortDescriptor, nil];
    [request setSortDescriptors:sortDescriptors];

    NSError *error = nil;
    NSMutableArray *mutableFetchResults = [[_managedObjectContext executeFetchRequest:request error:&error] mutableCopy];
    if (mutableFetchResults == nil){
        //handle error
    }
    [self setAthleteArray:mutableFetchResults];
    [self.tableView reloadData];
}



 //this is what I have so far
 - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
 {
     if ([segue.identifier isEqualToString:@"setAthlete"]) {
         NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
         AthleteDetail *destViewController = segue.destinationViewController;
     }
 }

//i was also thinking something like this?
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    UIViewController* detailViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"DetailViewController"];
    NSMutableString *object = thisArray[indexPath.row];
    detailViewController.passedData = object;
    [self.navigationController pushViewController:detailViewController animated:YES];
}

它向您推送的第二个控制器是 AthleteDetail。感谢您的时间。


您正在混合两个不同的概念。代替

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    UIViewController* detailViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"DetailViewController"];
    NSMutableString *object = thisArray[indexPath.row];
    detailViewController.passedData = object;
    [self.navigationController pushViewController:detailViewController animated:YES];
}

你应该做类似的事情

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    [self performSegueWithIdentifier:YOUR_SEGUE_IDENTIFIER sender:self];        
}

进而:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
 {
     if ([segue.identifier isEqualToString:YOUR_SEGUE_IDENTIFIER]) {
         NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
         AthleteDetail *destViewController = segue.destinationViewController;
         // set whatever you want here in your destination view controller
         destViewController.passedData = object;
     }
 }

并确保您的 Segue 是 Push Segue。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在视图控制器segue之间传递数据[重复] 的相关文章

  • Swift try inside Objective-C 块

    我需要创建一个函数foo它接受一个抛出闭包作为参数 我可以使用 Swift 或 ObjC 来实现它 但我需要能够从两者中调用它 像这样 Swift func bar throws func foo block throws gt void
  • Swift:如何让游戏中的角色只有落地后才能跳跃?

    我正在开发一款游戏 我的角色可以从一个陆地跳到另一个陆地 我已经把所有事情都做好了 除了我剩下的问题是 如果你继续点击屏幕 他可以永远跳跃 我希望他必须先落地才能再次跳跃 import SpriteKit import GameplayKi
  • 在 iOS 7 中查看 Core Data 创建的 sqlite 文件时出现问题

    当我尝试访问由核心数据创建的数据库文件时遇到问题 DB 文件位于 Documents 文件夹中 我已将其复制到桌面并使用 Firefox 插件打开它 Hello sqlite文件不包含任何行我有使用核心数据插入值 我正在使用 iOS 7 模
  • iPhone:每日本地通知

    我正在尝试实现本地通知 这就是我所设置的 Current date NSDate date NSDate date Add one minute to the current time NSDate dateToFire date date
  • 如何本地化 iOS 故事板

    我有一个包含一些视图的 iPhone 故事板 例如 导航项标题名为News 应翻译为其他语言 当我向故事板添加新的本地化版本时 它会为新语言创建当前故事板的副本 在这里我可以更改导航项的标题 但对我来说它似乎不太有用 如果我的故事板包含 1
  • 如何从标签栏控制器上方显示 UIActionSheet 视图?

    我需要在选项卡栏控制器上方显示操作表 我的意思是 即使操作表视图处于可见模式 我也能够看到选项卡栏控制器 因此 请建议如何从选项卡栏控制器上方查看 是否可以 其次 如何更改操作表的背景颜色和取消按钮背景颜色 请帮我 谢谢你 马丹 莫汉 要从
  • 为什么 iPhone 应用程序的 main() 函数没有机会完成?

    考虑以下main 大多数 iPhone 应用程序都采用以下方法 int main int argc char argv NSAutoreleasePool pool NSAutoreleasePool alloc init int retV
  • 如何将 NSMutableArray 添加到 NSMutableArray Objective-c

    我正在从 Java 切换到 Objective c 但遇到了一些困难 我已经搜索过这个问题但没有取得太大成功 我有一个存储 NSMutableArrays 的 NSMutableArray 如何向数组添加数组 您可以在数组中存储对另一个数组
  • Swift:Tableview 在导航栏下方滚动但在状态栏上方滚动?

    我使用以下技巧隐藏了导航栏的阴影 self navigationController navigationBar setBackgroundImage UIImage for default self navigationControlle
  • gestureRecognizer shouldReceiveTouch 持续存在于已释放的视图中导致崩溃

    我有一个相当简单的 UITableView 它在堆栈上推送一个新视图 新视图有一个像这样初始化的gestureRecognizer synthesize swipeGestureLeft void viewDidLoad swipeGest
  • 无法在 xcode 8 beta 6 上编译 AWS CustomIdentityProvider

    我在 iOS 应用程序中使用 Amazon Cognito 和 Facebook 登录 直到 beta 5 为止此代码从这个SO线程 https stackoverflow com questions 37597388 aws cognit
  • Grand Central Dispatch (GCD) 调度源标志

    我最近不再使用 to GCD 调度来源 https developer apple com documentation dispatch 1385630 dispatch source create监视文件更改 效果很好 API 也变得更加
  • iOS - 在相机上放置自定义叠加层(垂直对齐)。顶部黑条的大小

    我正在寻找以下问题的编程解决方案 我想在相机 iOS 上绘制自定义叠加层 我希望它位于相机输出视图的垂直中央 我已经完成了相对于屏幕而不是相机图片居中绘制自定义视图 为此 我需要获得顶部黑条的大小 我怎么才能得到它 顶部和底部栏的大小不相等
  • SDK 和 iOS 部署目标。

    我使用最新的 SDK 4 1 构建项目并设置 iOS 部署目标 3 0 如果我使用4 0 sdk的某些方法 我可以在真正的iPhone 3 0上运行我的项目吗 您只能在 OS 3 设备上运行您的项目 如果有条件地编码围绕您想要使用的 OS
  • 使用标识符启动 iPhone 应用程序

    我正在尝试在我的应用程序中启动应用程序 例如 如果我按下 testApp1 中的按钮 它应该打开 testApp2 有没有办法用应用程序标识符来做到这一点 我听说过一种名为的未记录方法launchApplicationWithIdentif
  • 使用未声明的类型“对象”

    这太奇怪了 通常我可以理解未声明的类 但这是声称 Object 类本身未声明 NSObject 可以工作 但我的项目设置方式我需要它是一个纯 Swift 对象 我的类标题如下所示 import UIKit import Foundation
  • 找不到 Cocoa/Cocoa.h 文件

    我在用XMPPFramework在我的应用程序中 我已将 Cocoa Cocoa h 导入到我的 m 文件中 但是当我构建项目时Xcode显示错误 错误 未找到 Cocoa Cocoa h 文件 我该如何解决这个错误 如果您正在为 iOS
  • 如何从第二个视图弹回到根视图?

    我使用 2 将 3 个视图 根视图 第 1 个视图 第 2 个视图 连接在一起modal在 Apple Watch 故事板中继续 1 在根视图中 按下 保存 按钮后 将显示第一个模态视图 2 在第一模态视图中 一旦按下 500 按钮 将显示
  • Facebook 登录打开错误的应用程序

    我正在尝试使用 facebook 实现应用程序的登录 但每次我尝试登录时 它都建议打开错误的应用程序 我尝试了一些在这里找到的东西 但没有成功 在 Facebook 的开发者页面上我添加了一个后缀 我的 plist 如下 有谁知道发生了什么
  • iOS 目标 c 中的 AES/CBC/PKCS5Padding 结果与 Android 不同

    我在 Android 应用程序中使用 AES CBC PKCS5Padding 代码就像 private static String TRANSFORMATION AES CBC PKCS5Padding private static St

随机推荐

  • PostgreSQL hstore 数组列上的索引

    我知道您可以在 hstore 列中的字段上创建索引 我知道您还可以在数组列上创建 GIN 索引 但是在 hstore 数组上创建索引的语法是什么 e g CREATE TABLE customer pk serial PRIMARY KEY
  • 防止数组覆盖并创建新的数组索引

    我有一个文件 我需要将该文件的内容保存在我的 MySQL 数据库中 这是我用来解析文件的代码 lines file tmp filename data array if handle fopen tmp filename r FALSE w
  • 将时间戳(以微秒为单位)转换为 r 中的数据和时间

    我正在尝试将以微秒为单位的时间戳转换为 R 中的以下格式 年 月 日 时 分 秒 我尝试过不同的方法 但未能成功 按照我的代码 options digits 16 value 1521222492687300 as POSIXct valu
  • 如何在 Perl 的 system() 中检查管道中第一个程序的状态?

    perl e system crontab1 l print 按预期返回 1 程序 crontab1 不存在 perl e system crontab1 l grep blah print 返回 256 检查第一个 或两个 程序的状态的方
  • 如何自动缩放传单中的多边形?

    我的 geoJson 格式如下 statesData features push type Feature id AFG properties name Afghanistan geometry type Polygon coordinat
  • 是否可以阻止 JIT 优化方法调用?

    我们正在构建一个用于 Java 字节码程序的平均情况运行时分析的工具 其中一部分是测量实际运行时间 因此 我们将采用任意的 用户提供的方法 该方法可能有也可能没有结果 并且可能有也可能没有副作用 示例包括快速排序 阶乘 虚拟嵌套循环 并执行
  • 使用哈希值跟踪文件的唯一版本

    我将跟踪可能数百万个不同文件的不同版本 我的目的是对它们进行散列以确定我已经看到了该文件的特定版本 目前 我只使用 MD5 该产品仍在开发中 因此尚未处理过数百万个文件 这显然不够长 无法避免冲突 然而 这是我的问题 如果我使用两种不同的方
  • ffmpeg AVFrame 获取完整解码数据到 char*

    我在循环中获取帧并使用 ffmpeg 对其进行解码 得到 AVFrame 作为其结果 因此 我必须将帧的必要像素数据获取到 char 中 并作为回调函数的参数给出 那么如何生成这样的 char 数组呢 在互联网上我看到了一些例子 例如 fo
  • 每小时自动运行一次 php

    我使用的是共享 Windows 主机 其中允许通过 php 代码发送 120 封邮件 小时 我有一个 php 页面可以一次发送超过 200 封邮件 但我想每小时运行一次该页面 计划任务 我将拆分电子邮件 以 100 秒为单位 并希望每小时自
  • amp-iframe 内的 amp 页面上的 Disqus

    我尝试在 amp 文档上实现 Disqus 我的想法是使用amp iframe它加载一个仅包含 Disqus 的小文档 我用的是这个放大器框架
  • api.get_retweeter_ids() 实际上是如何工作的(Tweepy Python)?

    我对 twitter api 很陌生 我一直在尝试获取转发特定推文的每个人的 ID 列表 经过几次尝试后 我无法使用 api get retweeter ids 来获取每个 id 似乎总是能得到一些 我知道每个请求的限制为 100 个 但在
  • Javascript:如何避免在函数中添加新属性?

    我是一个JS新手 正在看书JavaScript 模式为了理解 我可以看到的代码片段之一 var myFunc function param myFunc cache 这表明函数体之外的任何人都可以添加新属性 这不会破坏封装吗 如果程序的其他
  • Delphi Firemonkey 跨平台 - 传递 Windows 句柄的通用方法

    我正沉浸在我的第二个适用于 Windows 和 OSX 的 Firemonkey 应用程序中 并慢慢地转换我的函数库以处理跨平台问题 我正在尝试创建一个通用的 SelectDirectory 函数 它将运行 Windows 或 OSX 平台
  • 如何告诉数据注释验证器也验证复杂的子属性?

    我可以在验证父对象时自动验证复杂的子对象并将结果包含在填充的结果中吗ICollection
  • 斯特林格的行为令人费解?

    Go 新手 请耐心等待 我一直在浏览 Tour of Go 页面 无意中发现了一些关于 Stringers 的令人费解的事情 考虑以下练习 https tour golang org methods 18 我最初的答案是实施 func th
  • 使用 React 更新 HTML5 视频上的源 URL

    我想更新 HTML5 视频元素中的源标签 以便当我单击按钮时 正在播放的任何内容都会切换到新视频 我有一个 Clip 组件 它返回一个 HTML5 视频元素 并通过 props 提供源 URL function Clip props ret
  • 使用jquery在密码字段中进行密码屏蔽

    如何在 Android 手机中进行密码屏蔽 例如当我们输入一个键时 它会显示一个键几秒钟并将其更改为 我尝试了中提到的插件使用js在手机中进行密码屏蔽这不是最佳的 还有 jsfiddlehttp jsfiddle net medopal X
  • 如何使用 RSpec 测试 STDIN

    好的 需要帮助进行测试 我想测试这个类是否收到字母 O 并且 当调用 move computer 方法时 会返回用户在 cli 上输入的内容 我的心理子处理器告诉我 这是一个简单的分配变量来保存 STDIN 上的随机人类输入 只是现在不明白
  • SQL Server 2012 中具有列和行总计的动态数据透视表

    我有表 RPT DailySalesSummary 其中包含 CalDate OrderID SalesAmount LocRecID 列 CalDate OrderID SalesAmount LocRecID 2016 12 01 R1
  • 在视图控制器segue之间传递数据[重复]

    这个问题在这里已经有答案了 我的第一个视图控制器 AllAthletes 是我所有核心数据实体的 uitableview 它在字幕样式表格单元格中显示实体 运动员 及其属性 例如名字等 当您单击视图单元格时 我希望此视图控制器传递所选实体的