将带有 NSNotificationCenter 的对象传递给其他视图

2023-11-26

我试图将一个对象从我的主视图类传递到另一个类中的其他通知接收器。

我想传递一个名为 Country 的对象,该对象从主控制器中的 SOAP 请求加载所有城市,并且我想将其发送到下一个视图。

国家 = [[国家分配] init];

国家/地区标题:

@interface Country : NSObject
{
    NSString *name;
    NSMutableArray *cities;
}

@property (nonatomic,retain) NSString *name;

- (void)addCity:(Cities *)city;
- (NSArray *)getCities;
- (int)citiesCount;    
@end

我发现一种使用 NSNotificatios 传递数据的方法是在 UserInfo 中使用 NSDictionary。但是不可能发送整个对象而不是转换为 NSDictionary 吗?或者说转移的最佳方式是什么?我一直在思考如何传递这些物体。

实际上我在我的应用程序上工作了这个简单的 NSNotification。

主视图控制器中的 NSNotification 实现:

//---Call the next View---
DetailViewController *detail = [self.storyboardinstantiateViewControllerWithIdentifier:@"Detail"];
[self.navigationController pushViewController:detail animated:YES]; 

//--Transfer Data to2View 
[[NSNotificationCenter defaultCenter] postNotificationName:@"citiesListComplete" object:nil];

2View Controller 实现中的 NSNotification:

 // Check if MSG is RECEIVE
- (void)checkMSG:(NSNotification *)note {

    NSLog(@"Received Notification");
}

- (void)viewDidLoad
{
    [[NSNotificationCenter defaultCenter] addObserver:self 
                                             selector:@selector(checkMSG:) 
                                                 name:@"citiesListComplete" object:nil];

噢噢噢,这么近。我有一种感觉,你不明白什么是NSDictionary是虽然。

发布您的通知:

Country *country = [[[Country alloc] init] autorelease];
//Populate the country object however you want

NSDictionary *dictionary = [NSDictionary dictionaryWithObject:country forKey:@"Country"];

[[NSNotificationCenter defaultCenter] postNotificationName:@"citiesListComplete" object:nil userInfo:dictionary];

然后像这样获取国家对象:

- (void)checkMSG:(NSNotification *)note {

    Country *country = [[note userInfo] valueForKey:@"Country"];

    NSLog(@"Received Notification - Country = %@", country);
}

您不需要将对象转换为NSDictionary。相反,您需要发送NSDictionary与你的对象。这允许您发送大量信息,所有信息都基于NSDictionary, 和你的NSNotification.

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

将带有 NSNotificationCenter 的对象传递给其他视图 的相关文章

  • 如何将nsmutable数组添加到sqlite数据库表中

    如何将nsmutablearray添加到sqlite数据库表中 有人可以帮我编码吗 您可以使用 for int i 0 i lt mutArray count i NSString string mutArray objectAtIndex
  • 如何检测 UITableView 中某个单元格的双击?

    如何检测某个单元格上的双击UITableView i e 如果用户进行了一次触摸 我想执行一个操作 如果用户进行了两次触摸 我想执行另一个操作 我还需要知道进行触摸的索引路径 我怎样才能实现这个目标 Thanks 如果您不想创建子类UITa
  • 刷新单元格的 UITableView 队列

    我想知道如果调用 UITableView reloadData 时 UITableView 队列被刷新 是否有人可以回复我 我正在尝试这样做 但这对我没有帮助 有什么建议吗 如果你查看 UITableView 的头文件 你可以看到有一个名为
  • Xcode 4.2 UITableview 自定义单元格

    我对故事板上的自定义单元格有疑问 我需要从调用的方法访问标签 UITableViewCell tableView UITableView tableView cellForRowAtIndexPath NSIndexPath indexPa
  • 聊天室成员列表

    如何检索正在使用的聊天室的成员列表XMPP framework 我尝试使用 void xmppRoom XMPPRoom sender didFetchMembersList NSArray items 但它返回一个空数组 这个问题很老了
  • UITableView 给出空表,不加载数据

    当保存我的表的视图是主 第一个 视图时 一切正常 但是 当它不是第一个视图并且我切换到该视图时 我的表不会加载数据 并且我得到一个空桌子 使用 NSLog 我可以看出该程序是不调用 numberOfRowsInSection 和 cellF
  • UITextfield 键盘只有字母,没有数字,没有大写字母,没有空格键?

    我希望 UITextfield 的键盘只有 a z 没有数字 没有特殊字符 并且没有大写字母 基本上我想要一个只有字母的键盘 我已经能够禁用该空间了 有人知道如何禁用数字 特殊字符和大写字母吗 解决这些问题中的任何一个都很棒 对所有角色执行
  • 如何确定自定义 UINavigationItem.titleView 的大小/框架?

    创建自定义视图并将其分配给 navigationItem titleView 属性后 它的显示如下 自定义视图填充两个按钮之间的空间 因此 自定义视图并不以导航栏为中心 如何确定 titleView 属性中视图的框架 我想在导航栏中居中放置
  • Swiftui 应用程序在 iOS 14 / 15 上使用不同的 SearchBar (ViewModifier) 时崩溃

    我在 iOS 14 上使用 SwiftlySearch 在 iOS 15 上使用 searchable struct CompatibleSearchBarModifier ViewModifier Binding var text Str
  • 如何在 Swift 中退出“DispatchQueue.main.asyncAfter”

    我想在调用 deinit 时退出 DispatchQueue main asyncAfter 子视图 swift DispatchQueue main asyncAfter deadline now 5 0 self doSomething
  • iPhone触摸形状或原始数据

    有人知道是否可以检测触摸形状吗 也许通过获取原始触摸屏数据 我在这里找到了这个问题 答案 如何获取原始触摸屏数据 https stackoverflow com questions 789737 iphone raw touchscreen
  • 从现在起测量时间间隔

    任何人都知道或可以提供一些与 timeIntervalSinceNow 方法相关的示例代码 我需要类似的东西 time2 当应用程序进入前台时 time1 当应用程序进入后台时 time3 时间差 这样我就可以使用这个数字 以秒为单位的首选
  • iPhone 中的 UIGlassButton

    有人使用 Glass Button 提交过申请吗 获得批准了吗 我正在尝试使用彩色圆形按钮 但不想使用这些技巧 如何在 iPhone 上设置按钮背景颜色 https stackoverflow com questions 372731 ho
  • Objective c:如何只删除目录下的所有文件但保留目录本身

    我发现下面的代码可以删除objective c中的文件 但我只想删除目录下的所有文件Caches并保留目录Caches itself 有人可以建议这样做的方法吗 Thanks NSFileManager filemgr filemgr NS
  • iOS:保持应用程序在后台运行

    如何让我的应用程序在后台运行 我需要越狱我的 iPhone 才能执行此操作吗 我只需要这个应用程序每隔设定的时间间隔从互联网上检查一些内容 并在需要时发出通知 以供我自己使用 是的 不需要越狱 查看本文档的 实现长时间运行的后台任务 部分A
  • 如何查找哪个注释发送了showDetails?

    如何查找哪个注释发送了showDetails MKPinAnnotationView customPinView MKPinAnnotationView alloc initWithAnnotation annotation reuseId
  • 如何在 Monotouch 中对 UIImageView 进行运动模糊效果?

    在 MonoTouch 中进行实时运动模糊的方法是什么 当滚动惯性图片库时 我需要在 UIImageView 上应用运动模糊效果 以强度和方向作为参数 就像在 Photoshop 中一样 我在 CocoaTouch 或 CoreAnimat
  • 安装 Ruby 后,MAC OS X 上的活动开发人员路径无效

    我收到此错误 xcrun 错误 无效的活动开发人员路径 Applications Xcode app 缺少 xcrun Applications Xcode app usr bin xcrun This solution https sta
  • iphone:通过代码获取目标设置中的用户定义变量?

    我的项目有多个目标 每个目标都有自己的目标Class用于设置内容的文件 我想存储它Class目标设置中的名称 Info plist或目标的建筑物设置 这样我就可以根据此设置定义每个目标中需要使用哪个类 根据这个问题 https stacko
  • Facebook oauth/access_token 丢失

    不知道我是否错过了什么 但就这样 我正在尝试为我的应用程序获取 access token 以便它可以在 facebook 上查找某些公共群组的事件 而无需用户登录 我试图从中获取 access token 这将返回一个字符串 access

随机推荐

  • 如何编译 jrxml 以获得 jasper?

    I have jrxml文件 我想编译它以获得 jasper 我如何编译并得到它jasper file 将jrxml编译为jasper有3种方法 您可以通过iReport设计器上的编译按钮 锤子标志 直接编译 您可以使用 ant 进行编译
  • R 中带有 addCircleMarkers 的传单地图图例中的圆圈 - 没有闪亮

    我正在 R 中创建传单地图 我不需要构建一个闪亮的应用程序 并且还没有解决该特定技能集 我试图按照这里的这篇文章在我的图例中创建圆圈 用圆圈传单 R 创建图例 但是 我不确定如何合并tags style将我的 R 代码属性为 K 罗德建议确
  • 如何在后台线程上运行 ListenableWorker 工作?

    由于我需要在 WorkManager 中异步执行工作 因此我需要使用ListenableWorker 默认情况下在主 UI 线程上运行 由于这项工作可能是一个很长的处理任务 可能会冻结界面 因此我想在后台线程上执行它 在里面使用 WorkM
  • Python 中的枚举无法按预期工作

    我在 Python 的 Enum 类中发现了一个非常奇怪的行为 所以枚举类型很简单 from enum import Enum Analysis Enum Analysis static dynamic 因此 我在步骤对象中使用此枚举类型
  • 如何将 auto_increment 添加到 SQL Server 2008 中的列

    我正在使用 SQL Server 2008 并且我使用的数据库表的主键不是IDENTITY列 不知道为什么 我需要改变这一点 我在 SQL Server Management Studio 的设计视图中的列属性下 由于某种原因 我无法将标识
  • 如何在 SQLite 中使用序列?

    我正在编写一个基于 PHP 的 Web 应用程序 该应用程序应该与多个数据库系统一起使用 最重要的是 MySQL 和 SQLite 但 PostgreSQL 和其他也不错 为此 我尝试尽可能使用可移植的 SQL 如果这是不可能的 我在查询中
  • QtWebEngine - 同步执行JavaScript以读取函数结果

    我的 C 类之一有以下方法 使用 QtWebEngine QString get QString result view gt page gt runJavaScript test this const QVariant v result
  • Android:编辑图像意图

    我发现了很多关于如何裁剪图像的问题 但是 有没有办法通过意图启动编辑图像活动 我尝试过com android camera action EDIT但它不起作用 我想要做的是 当我单击按钮时 启动编辑图像的活动 如下图所示 就像我从图库中打开
  • Python附加到csv文件而不带白线

    我正在用 python 写一个游戏 每轮游戏结束后 是的 游戏有多轮 我想将数据写入 CSV 文件 这是我的代码 with open data csv a as fp for player in self players a csv wri
  • 如何在 WinRT 中的 ItemContainerStyle 中进行绑定?

    我试图将集合绑定到 ItemsControl 使用 Canvas 作为项目面板 并将每个项目的 Canvas Left 和 Top 绑定到项目对象的属性 基本上我正在尝试重新创建我在中描述的二维数据绑定我的博客上的这篇文章 但这次是在 Wi
  • matplotlib 在某些数据集上生成奇怪的 y 轴?

    我正在编写一个 python 2 7 脚本 它在循环中生成多个 matplotlib 图 import matplotlib pyplot as plt import numpy as np 这里我对数据进行了缩放 因此第一个点是 100
  • Play Framework Scala:如何流式传输请求正文

    我正在使用 Scala 使用 Play Framework 2 3 x 构建微服务 我是两者的初学者 但我无法找到一种流式传输请求正文的方法 问题是这样的 我需要一个端点 transform我可以在其中收到一个巨大的 TSV 文件 我将解析
  • WPF 通知

    如何为我的 WPF 应用程序创建通知 例如浏览器上的通知 它们通过浏览器顶部的 工具栏 显示消息 或者通过浏览器右下角向上 向下滑动的弹出窗口显示 MSN 样式通知屏幕 也许在应用程序中心淡入 淡出的面板可以 你的问题有点模糊 因为对于 W
  • ASP.NET MVC:从数据库加载图像并在视图中显示它们

    我们的数据库中有一些图像并希望在视图中显示它们 我发现two way去做这个 首先 我们在控制器中创建操作方法 从数据库获取图像并返回 FileContentResult public ActionResult GetImage int i
  • Git 仅将主文件中的单个文件合并到当前分支中[重复]

    这个问题在这里已经有答案了 我刚刚开始使用 git 我从 master 创建了分支 A 我已经在branch A中创建了文件abc txt 并成功将branch A合并到master中 现在我正在分支 A 中处理相同的文件 并希望将主文件
  • 为什么 make 打印“make: Nothing to be do for ‘all’.”? [复制]

    这个问题在这里已经有答案了 这是一个 Hello c 模块和 Makefile 执行后make从 woking 目录中我收到以下消息 make 无需为 全部 执行任何操作 这是 Hello c 文件 include
  • 无法将 List 传递给需要 List 的方法,其中 Foo : IFoo

    我有课Foo实施IFoo界面 我有一个方法List
  • Kotlin:获取两个日期之间的差异(现在和上一个日期)

    很抱歉 如果类似的问题被问了太多次 但我发现的每个答案似乎都存在一个或多个问题 我有一个字符串形式的日期 例如 04112005 这是一次约会 2005 年 11 月 4 日 我想获得当前日期和此日期之间的差异 以年和日为单位 到目前为止
  • 如何在bazel规则中获取WORKSPACE目录

    我命令使用 clang 工具 例如clang format clang tidy或生成一个编译数据库 like this 我需要知道 bzl 文件中的 WORKSPACE 目录 我怎样才能获得它 考虑以下示例 我只想打印工作区中所有 src
  • 将带有 NSNotificationCenter 的对象传递给其他视图

    我试图将一个对象从我的主视图类传递到另一个类中的其他通知接收器 我想传递一个名为 Country 的对象 该对象从主控制器中的 SOAP 请求加载所有城市 并且我想将其发送到下一个视图 国家 国家分配 init 国家 地区标题 interf