通过 App Delegate 在视图之间共享数据

2023-11-29

我有一个关于在视图之间共享数据的问题,希望它不是太基础。我在 appDelegate 中有一个 NSMutableArray ,其中包含(Object1,Object2,Object3)。创建新对象(并将其添加到数组中)时,我需要在下一个视图上访问该对象。以前我只是将对象传递到下一个视图,但这变得混乱并且似乎是错误的。

所以现在我将所有对象都放在一个地方,但是如何在下一个视图中访问该对象(刚刚创建的),因为我不知道它被添加到哪个索引中?每次创建对象时是否需要检查数组的计数,然后从中确定数组索引并将该索引值传递到下一个视图?或者有没有办法通过某种唯一的名称从 NSMutable 数组中检索对象?

另一种解决方案是迭代所有对象,直到找到我想要的对象,但我想知道执行此操作的正确方法是什么。感谢您的时间。

编辑:感谢您的回复,我会澄清我想要做什么。我有一个 NavigationController,您进入的每个视图都需要访问该对象。你可以把它当作一本书来思考。您在第一个视图中选择了想要阅读的书籍,之后的每个视图都是您选择的书籍中的一页。 App Delegate 中是所有书籍的数组。您会通过每个“页面”查看这本书吗?

请记住,这是一个粗略的示例,因为当您选择这本书时,您已经知道它所在的索引。假设您创建一本书,那么您还不知道它在数组中的位置。


如果您可以为每个对象创建一个有意义的唯一名称,只需使用NSMutableDictionary并让控制器通过指定密钥来获取数据。就像这样:

AppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];
NSString *obj = [appDelegate.dict objectForKey:@"unique-name-here"];

希望有帮助。

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

通过 App Delegate 在视图之间共享数据 的相关文章

  • iPhone:两个 RootViewController 之间的淡入淡出过渡

    Obj C or MonoTouch C 答案很好 初始 UIWindow 的 RootViewController 是一个简单的登录屏幕 window RootViewController loginScreen 登录后 我将根设置为主应
  • 带有徽章编号的 UISegmentedControl

    就像标签栏一样 我想在其上显示徽章UISegmentedControl 因为我看不到任何预定义的方法UISegmentedControl就像可用于UITabBar 我考虑过将徽章作为图像添加到其顶部 但也许有更好的方法 Here https
  • 如何更改表格单元格的详细信息披露按钮的颜色

    我想更改表格单元格的详细信息披露按钮的颜色 提前致谢 你必须创建一个自定义的UIButton并将其设置为单元格的附件视图 Your cellForRowAtIndexPath 看起来像下面这样 UITableViewCell tableVi
  • 将 UIWebView 标题发送到 UINavigationBar

    我正在尝试将 UIWebView 页面标题发送到 UINavigationBar 如果用户单击链接 UINavigationBar 显示后退按钮 但如果在主页上隐藏后退按钮 我也希望如此 要将标题页检索到 UIWebView 中 您可以使用
  • zlib 直接用于解压 iPhone 的 zip 文件夹

    是否可以使用 iPhone 上可用的最低 zlib 来解压缩文件夹的 zip 我不想使用开源库 请告诉我实现一段可以解压缩 zip 文件的代码的难度或可能性 正如 JosephH 所说 您不能使用 ZLib 来处理 zip 文件 但您可以使
  • 核心动画的鱼眼效果?

    我正在尝试实现类似于 ABC News iPad 应用程序的地球仪的效果 是不是可以通过改造CALayers来得到这个效果呢 或者这是使用 OpenGL 和片段 顶点着色器 CALayer 提供对变换矩阵的访问 是否有一些数学可以应用于此而
  • iPhone崩溃日志:未能及时恢复

    我正在查看崩溃日志并注意到 未能及时恢复 Application Specific Information com myApp MyApp failed to resume in time elapsed total CPU time se
  • 重新排序单元格后重新加载自定义 UITableViewCell

    I have UITableView它使用自定义UITableViewCells 单元格可以具有三种类型的背景图像之一 在每个单元格的 backgroundView image属性 顶部 中间或底部 顶部和底部图像用于第一个和最后一个单元格
  • 如何在第二个 ViewCcontroller 中使用第一个 ViewController 的解析元素?

    在我的应用程序中我发送一个GET到我的服务器并收到一些响应 我有来自主视图控制器类的 TavleView 和 TableViewController 类 我在主 ViewController 中进行解析 我想用从第一个 ViewContro
  • 现有 UIPopoverController 中的 UIImagePickerController

    有没有办法将 UIImagePickerController 推送到现有 UIPopoverController 的导航控制器中 我所知道的是 您必须创建一个新的弹出窗口并在其中添加 UIImagePickerController 但我有一
  • 将 UIActivityIndi​​catorView 添加到 UIBarButton

    如何将 UIActivityIndi catorView 微调器圆添加到 UIBarButton 中 以便当用户点击导航栏上的这些按钮之一时 他们会在加载时看到一个微调器 如果您尝试在导航栏按钮中显示活动轮 例如 您的导航栏上可能有一个刷新
  • 外围 BLE 设备的唯一标识符

    所以我有外围设备BLE设备 我需要一些标识符以便稍后与另一部 iPhone 共享 我连接的示例iPhone A 为外围设备 iPhone A 将外围设备的标识符保存到数据库中 稍后我可以轻松获取iPhone B 并连接到通过该标识符找到的外
  • 记录使用 OpenAL 播放的样本

    我在 iOS 上使用 OpenAL 同时播放 9 个循环 为了使循环 100 同步 它们开始在不同的线程上运行 有关使用 OpenAL 记录正在播放的内容的任何指示 教程 如果我使用不同的线程 我会遇到录制问题吗 iOS 上的 OpenAL
  • 如何为带有标题图像的移动设备设置 HTML,该图像占据浏览器的整个宽度?

    我担心的是我必须为移动设备建立一个网站 概念中是将图像设置为标题 现在的问题是 不同的智能手机具有不同的显示分辨率 有例如840x560 480x320 或 800x480 我必须编写什么元标签 CSS 等才能使 每个 现代智能手机中的图像
  • iOS 显示 UIImage 全屏并启用缩放(捏合和双击)

    我有一个UIImage从相机捕获UIImagePickerController 现在 在用户单击它之后 我希望它显示全屏 并且能够使用捏合手势进行放大和缩小 还可以使用双击手势来放大特定区域 换句话说 我想模拟ios默认图像浏览器的功能 我
  • 无法下载应用程序 - 此时无法下载“APP”

    我的应用程序有 PLUS 版本和常规版本 我使用不同的目标对它们进行存档 我将 ipa 上传到 TestFlight 也上传到我的曲棍球服务器 PLUS 版本总是下载得很好 但普通版本总是给我 无法下载应用程序 错误 我根本没有更改两个版本
  • 在 iPhone 和 Cocos2d 中从类类型(+)方法访问对象?

    我有一个类方法 在其中创建并返回类对象 但我想访问同一类中该对象的某些属性 作为一个类方法 我无法在 h 文件中声明该变量 然后在其他方法中访问它 以下是代码 我如何在下面的实例方法中访问 backsprite 或 hudlayer 对象的
  • UITextInput setMarkedText:selectedRange 不起作用? (不可能!)

    我想以编程方式设置标记的文本 并且由于 iOS5 UITextView 和 UITextField 符合 UITextInput 这应该是可能的 但由于某种原因我总是得到markedText为零 我在这里缺少什么 这是我尝试过但没有成功的方
  • iPhone,如何将一张图像叠加到另一张图像上以创建要保存的新图像? (水印)

    基本上 我想拍摄用户从照片库中选择的图像 然后应用水印 即右下角的三角形 上面有应用程序名称 我已经在 Photoshop 中用透明层制作了第二张图像 我尝试了一个函数 我不记得它的确切名称 但它涉及 CGIImages 和蒙版 这将两个图
  • 更改选项卡栏应用程序中的 UITableViewController 样式

    我有一个带有 4 个选项卡的选项卡栏 iPhone 应用程序 在界面生成器中 我为每个选项卡设置视图控制器 我想将一个 UITableViewController 的样式从普通样式更改为分组样式 我用这样的方式替换 init 方法 id i

随机推荐

  • 使用 NGINX proxy_pass 进行 https 域的 Webpack 开发服务器原因:net::ERR_CONNECTION_CLOSED

    我已经设置了一个服务器 它托管一个前端的 angular2 webpack starter 项目和一个nodejs后端 nginx 默认有两个 proxy pass 将连接映射到服务器上的正确位置 几乎一切都按预期进行 但是代理存在问题so
  • 使用 PyMongo 连接数组因未知组运算符“$concatArrays”而失败

    我有 mongodb 数据 例如 word good info tbl id d1 term freq 2 tbl id d2 term freq 56 tbl id d3 term freq 3 word spark info tbl i
  • 将 C++ 二维固定长度 char 数组编组为结构成员

    我正在尝试调用一个非托管 C 函数 该函数具有一个结构作为输入参数 该结构在头文件中定义如下 struct MyStruct int siOrder char aaszNames 6 25 int siId 6 int siTones 6
  • 需要有关本地 CF9/Jrun 安装上的多个 URL 设置的帮助

    我正在本地 Windows XP 计算机上运行 ColdFusion 9 Developer 版本 我已经将它与嵌入式 Web 服务器一起安装 我认为它是 JRun 现在 我只能访问 127 0 0 1 8500 其他位置的网页 我的所有应
  • pandas.replace 与 str.replace 正则表达式冲突。代码顺序

    我的任务是删除括号中的所有内容并删除国家 地区名称后面的所有数字 更改几个国家的名称 例如 玻利维亚 多民族国 应为 玻利维亚 Switzerland17 应该是 瑞士 我原来的代码是这样的 dict1 Republic of Korea
  • 使用 FFMPEG 通过 QuickTime 对可读的电影进行编码

    我正在尝试使用以下命令对图像序列进行编码 ffmpeg exe i d png f mp4 vcodec h264 test mp4 但是 QuickTime 无法打开该文件 或者有时会播放黑色电影 而该电影在 VLC 播放器中播放效果很好
  • 类继承:从继承类的属性重新创建基类项(或实例)

    I have a class A that is inherited from B A 作为我想从 B 修改的一些只读属性 用 new 隐藏这些属性不是一个合适的选择 因为基类有一些使用其自己的属性的函数 不能使用 override 关键字
  • CoffeeScript 模块的模式[重复]

    这个问题在这里已经有答案了 在审查的同时Github 上的 CoffeeScript 源代码 我注意到大多数 如果不是全部 模块定义如下 function call this 这种模式看起来像是将整个模块包装在一个匿名函数中并调用自身 这种
  • 为什么 C++ 中 const 方法不覆盖非常量方法?

    考虑这个简单的程序 class Shape public virtual double getArea 0 class Rectangle public Shape int width int height public Rectangle
  • 是否可以更改 Hive 分区表上列的元数据?

    这是我之前提出的问题的延伸 是否可以更改 HIVE 中的分区元数据 我们正在探索更改表上的元数据的想法 而不是对 SELECT 语句中的数据执行 CAST 操作 更改 MySQL 元存储中的元数据非常简单 但是 是否可以将该元数据更改应用于
  • 注册我的广播接收器以在应用程序启动时运行?

    我想在启动应用程序时运行一些代码 因此当用户打开任何应用程序时必须通知我的广播接收器 有什么办法可以做到吗 不 抱歉 应用程序启动时或活动启动时都不会广播 Intent
  • 从 C# 调用 PHP Web 服务

    我目前正在尝试用 C 调用 PHP Web 服务 我一直在尝试在互联网上找到的数十种解决方案 但没有运气 并且没有一个与我有相同的问题 我对PHP不熟悉 我可以从我的 C 成功调用authenticate get string auth i
  • 如何注入EPartService

    我正在开发 e4 应用程序 我想在 Part 和 Handler 之外注入 EPartService 当我注入 EPartService 时 我会得到空指针错误 public class DisplayRuntimePart Inject
  • 更改 Java 中的当前工作目录?

    如何从 Java 程序中更改当前工作目录 我能找到的有关该问题的所有内容都表明您根本无法做到这一点 但我不敢相信事实确实如此 我有一段代码 它使用硬编码的相对文件路径从通常启动的目录中打开一个文件 我只是希望能够在不同的 Java 程序中使
  • 如何解开双可选?

    如何解开返回的字符串 可选 可选 蓝色 var cityName String if let cityAnno annotation as MGLAnnotation cityName String stringInterpolationS
  • 标头是什么?

    什么是
  • 从 LibreOffice Basic 调用 C 共享库函数

    我试图从 LibreOffice Basic 调用 C 共享库函数 但当它到达 Declare 行时 我总是收到 基本运行时错误 未实现 这只是为了一件有趣的事情 但无法做到这一点让我很烦恼 Declare 语句如下所示 Declare F
  • Erlang 及其堆内存消耗

    我一直在 HP Proliant 服务器上运行高度并发的应用程序 该应用程序是我用 erlang 编写的文件系统索引器 它为在文件系统上找到的每个文件夹生成一个进程 并将所有文件路径记录在碎片化的 Mnesia 数据库中 数据库由disc
  • CSS 填充剩余容器宽度

    我有这个标题栏 我需要名为 middle 的元素来填充 div 中剩余的空白 我该怎么做 header background red middle background orange display inline block right b
  • 通过 App Delegate 在视图之间共享数据

    我有一个关于在视图之间共享数据的问题 希望它不是太基础 我在 appDelegate 中有一个 NSMutableArray 其中包含 Object1 Object2 Object3 创建新对象 并将其添加到数组中 时 我需要在下一个视图上