Ios 在ViewController之间传递可变数组

Ios 在ViewController之间传递可变数组,ios,objective-c,nsmutablearray,Ios,Objective C,Nsmutablearray,我有上面的代码片段。我正在尝试加载一个新的viewcontroller,并将其可变数组(docsArray)对象分配给BookingDocumentsViewController.h中当前视图的可变数组(documentsArray) BookingDocumentsViewController *bdVc = [self.storyboard instantiateViewControllerWithIdentifier:@"BookingDocs"]; bdVc.orId = r

我有上面的代码片段。我正在尝试加载一个新的viewcontroller,并将其可变数组(docsArray)对象分配给BookingDocumentsViewController.h中当前视图的可变数组(documentsArray)

  BookingDocumentsViewController *bdVc = [self.storyboard instantiateViewControllerWithIdentifier:@"BookingDocs"];
    bdVc.orId = rl_id;
    bdVc.docsArray =  self.documentsArray;
    [self.navigationController pushViewController:bdVc animated:YES];
您可以在BookingDocumentsViewController中执行。m:

@property(nonatomic, retain)NSmutableArray *docsArray;
然后当你推视图的时候

@synthesize docsArray;

- (void)viewDidLoad
 {
    NSmutableArray *array = [NSmutableArray alloc]initWithArray:docsArray];   
   [super viewDidLoad];
 }

可以考虑使用SeGuE。它为您实例化目的地VIEW控制器。然后在源视图控制器中实现

BookingDocumentsViewController *bdVc = [self.storyboard instantiateViewControllerWithIdentifier:@"BookingDocs"];
bdVc.orId = rl_id;
bdVc.docsArray =  self.documentsArray;
[self.navigationController pushViewController:bdVc animated:YES];
[bdVc Release];
获取对目标viewcontroller的引用并设置其数据

- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender

我想我发现了这个问题。一个非常基本的错误。在bdVc的viewDidLoad中,我有以下几行:

NSLog(@“预订文档视图加载:%@”,self.docsArray.count);

这是导致错误的原因。是%@而不是%d。我想知道为什么xcode没有显示错误的正确原因


谢谢大家的帮助。:)

发布崩溃的堆栈跟踪。您是否在bdVc的ViewDiLoad或ViewWillDisplay/ViewDidDisplay中使用docsArray?docsArray是强属性吗?是的docsArray是强属性。我不会在任何其他地方使用docsArray。正如已经问过的那样-请使用堆栈跟踪。控制台中没有错误,应用程序崩溃。我更新了问题。在viewDidLoad中创建一个不在任何地方使用的本地数组有什么意义?这离answerwell还差得远,你可以在.h中定义这个数组,如果你想在其他块中使用它,我只是专注于传递数组值funda…无论如何,将来会处理这个问题。
BookingDocumentsViewController *bdVc = [segue destinationViewController];
bdVc.docsArray = self.documentsArray;