【问题标题】:pass int array between view controllers在视图控制器之间传递 int 数组
【发布时间】:2014-08-25 23:57:15
【问题描述】:

我有一个整数数组,我想将它从一个视图控制器传递到另一个视图控制器。

我可以将字符串从一个视图传递到另一个视图中的标签,但是我无法使用 int 数组来做到这一点。

基本上我在 viewController_A 中声明了以下内容:-

int totalArray[30];

我想将它传递给 viewController_B

【问题讨论】:

标签: objective-c arrays int viewcontroller


【解决方案1】:

将整数数组和字符串从一个 ViewController 传递到另一个 ViewController 之间应该没有任何区别。

在 ViewControllers 之间发送数据相对简单,这是我第一次在 ViewControllers 之间发送数据时发现有用的东西的链接。 Passing Data between View Controllers

确保你的数组声明是强的:

@property (nonatomic, strong)NSMutableArray *exampleArray;

编辑:尝试传递整数数组比将值保存在 NSMutableArray 或 NSArray 中要多得多,因为如果没有解决方法,您无法将 c 样式数组声明为属性,如本文@ 987654322@

如果您查看robottobor 在该链接上的回答,您将了解如何将数组实现为属性,但我再次强烈建议您使用 NSMutableArray 或 NSArray。

【讨论】:

  • 我写了以下内容,但它不起作用。我是否必须使用 NSMutableArray... 我只想传递一个整数数组。 @property (strong, nonatomic)int *testArray[30];
  • 请注意,OP 没有传递 NSArray。 int[] 不是对象,因此标准属性属性不适用。
【解决方案2】:

只需在接收视图控制器中创建一个属性: @property(nonatomic, strong) NSArray *array

然后在 prepareForSegue 中访问该属性 destViewController.array = intArray

【讨论】:

  • 请注意,OP 没有传递 NSArray。
【解决方案3】:

在这里,我描述了在两个控制器之间传递数组的简单方法。

假设您想要从控制器 1 到控制器 2 的两个传递数组。

  1. 在控制器 2 中创建数组。
  2. 在controller1中导入controller2文件。
  3. 创建 controller2 文件的对象。

代码:

controller2 *cn2 = (controller2 *)[self.storyboard instantiateViewControllerWithIdentifier:@"storyboard_identifier"]; // create object of second controller

    cn2.array_name = array_name; //pass first controller array to second controller

[self.navigationController pushViewController:cn2 animated:YES]; // redirect to second controller

谢谢。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-09
    • 2018-07-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多