ios - 使用 UITableView 将 NSDictionary 传递给另一个 Controller

标签 ios objective-c uitableview

我有这个 NSDictionary:

{
   Name =
   (
     "Lucas",
     "Tom"
  );
    Surname = 
  (
    "Jhon",
    "Smith"
    "Hop"
);

名字很简单NSArray和姓氏是 NSMutableArray .

好的,现在我的问题是:

从这本词典开始,我必须在 UITableView 中显示NSDictionary 的每个元素的键.例如,在这种情况下,UITableView会有两个项目,一个电话姓名 和其他 姓氏 .

当我单击 UITableView 的一个元素时,我将不得不转到另一个 Controller ,它将向我显示单击单元格的所有数据。例如,如果我单击姓氏,当我打开新 Controller 时,我必须像 一样获取它。约翰 , 史密斯 .

首先,我尝试通过编写以下方式在所有键之前显示 UITableView:
self.KeyArray = [myDictionary allKeys];

cellForRowAtIndexPath方法:
cell.textLabel.text = [self.KeyArray objectAtIndex: indexPath.row];

但这是一个 错了方法,因为我将丢失与该特定 key 相关的所有信息。你知道我该怎么做吗?

最佳答案

您可以使用委托(delegate)将该 NSMutableArray 发送到另一个 Controller 。

假设您的第一个 View Controller 是“A”,它具有这些名称和姓氏键。第二个 Controller 是“B”,它将具有您要发送的数组。
现在,
1.在A Controller 中创建协议(protocol)。
2. 创建该协议(protocol)的委托(delegate)对象。
3. 在 Controller 中创建 1 个可以有参数的方法,例如:- (NSMutableArray *) .
4. 在 B Controller 中实现该协议(protocol)。
5.在Controller B中声明你在Controller A中定义的方法
6. 借助 didSelectRowAtIndexPath 中的委托(delegate)对象调用该方法,并在该方法中传递该对象。
7. 现在您在该方法中拥有了 NSMutableArray,您可以自由使用该值。

关于ios - 使用 UITableView 将 NSDictionary 传递给另一个 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46729583/

相关文章:

ios - iOS 中的内存管理,模拟器与 idevice 给出不同的结果

iphone - 暂时停止 UIButton 响应

iphone - 删除 UITableViewCells 之间的间距

ios - 关于 xcode Assets 目录和应用程序大小

ios - 将 Table Cell 拖入 UITableView

objective-c - 错误: "unrecognized selector sent to instance" when clicking button

ios - Revmob 使我的应用程序崩溃

ios - 在标签栏中添加图像 (.gif)

objective-c - UITableview 中没有正确的背景颜色

ios - UIApplicationDidBecomeActiveNotification 和 viewWillAppear 导致数据源冲突