将数组从一个 UIViewController 传递到另一个 ViewController 返回 null

Posted

技术标签:

【中文标题】将数组从一个 UIViewController 传递到另一个 ViewController 返回 null【英文标题】:Passing Array from one UIViewController to other ViewController returning null 【发布时间】:2017-06-19 03:45:37 【问题描述】:

我正在尝试将数组从一个 UIViewController 传递到另一个视图控制器。 我尝试使用属性(viewcontroller1.array)。 我尝试了通知(发布通知并添加观察者)。 我试过NSUserDefaults 都返回一个空数组。

【问题讨论】:

添加您尝试过的代码。 Passing Data between View Controllers的可能重复 【参考方案1】:

在 ViewController 1 中从数组中传递

@interface demopreseViewController () 
    NSArray* nameArr;

- (void)viewDidLoad 
    [super viewDidLoad];
    nameArr = [NSArray arrayWithObjects: @"Jill Valentine", @"Peter Griffin",nil];
    NSLog(@"%@",nameArr);



- (IBAction)PresentAction:(id)sender 
    ViewController2 *aviewcontroller = [self.storyboard instantiateViewControllerWithIdentifier:@"aa"];
    aviewcontroller.array1 = nameArr;
    [self presentViewController:aviewcontroller animated:YES completion:nil];

在 viewController 2 中要传递数组的地方

在 ViewController2.h 下

@property (strong, nonatomic) NSArray *array1;

ViewController2.m下

- (void)viewDidLoad 
    [super viewDidLoad];
    NSLog(@"parsed%@",_array1);

数组数据将被传递

【讨论】:

。我已经尝试了上述类型步骤,但我仍然得到空数组。是否必须像这样“ ViewController2 *aviewcontroller = [self.storyboard instantiateViewControllerWithIdentifier:@"aa"];”。 ?当我给出上述行时,我将无法识别的选择器发送到实例错误。当然,我已经给了我为我的故事板指定的名称的标识符。我在项目中有很多故事板文件?如果我给 self.storyboard 会有什么不同吗? 您是否尝试过使用情节提要的标识符,例如在 UIStoryboard 下面 *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle: nil]; @sampath, viewConrtoller2 是视图控制器类的名称,因此您需要自己提供。 我已经尝试了下面的代码并且它有效。 **MViewController *nextVC =(MViewController *)[self.storyboard instantiateViewControllerWithIdentifier:@"Service"]; **【参考方案2】:

为您的数组定义属性

@Property(nonatomic, retain) NSArray *arrayName;

其次

ViewControllerClassName *controller = [self.storyboard instantiateViewControllerWithIdentifier:@"StoryboardIdentifier"];
controller.array = arrayName;

【讨论】:

以上是关于将数组从一个 UIViewController 传递到另一个 ViewController 返回 null的主要内容,如果未能解决你的问题,请参考以下文章

我需要使用数组将数据从 UITableViewController 传递到 UIViewController

如何以编程方式将 JSON 数组从 UITableViewCell 传递到新的 UIViewController?

Xcode 错误的对象传递给 UIViewController

如何通过按 UIButton 从数组中切换 UIViewController 中的 UIImages

如何将数据从基于 plist 的 UITableView 传递到 UIViewController

将数组从另一个类的构造函数传递给类函数