尝试向前传递数据,但无法填充下一个视图控制器的数组

时间:2013-10-08 11:24:44

标签: ios objective-c

aViewController.h

中的

#import <UIKit/UIKit.h>

@interface aViewController : UIViewController
@property (nonatomic) NSMutableArray *pageImages;
@end
bViewController.m

中的

#import "aViewController.h"

// ...

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSInteger row = indexPath.row;

    aViewController *testViewController = [[aViewController alloc] init];
    [testViewController.pageImages addObject:@"lalala yeyeye"];

    NSLog(@"%@", testViewController.pageImages); // Error?

    [self.navigationController pushViewController:testViewController animated:YES];
}

bViewController.m 中的NSLog输出:

2013-10-08 18:23:38.398 quo.mk.e[56804:1ca03] (null)

我在这里做错了什么?尽管我已经在其中添加了一个对象,为什么NSMutableArray仍然是空的?

更新:两个UIViewController对象都是以编程方式生成的。我正在使用the passing data forward tips mentioned here填充数组,但我很难理解为什么它不起作用。

1 个答案:

答案 0 :(得分:5)

分配aViewController时,它不会在该类中分配对象。

您还需要分配它们,意味着您需要为NSMutableArray分配内存,否则它将是nil

你应该这样做:

aViewController *testViewController = [[aViewController alloc] init];
testViewController.pageImages = [[NSMutableArray alloc] init];
[testViewController.pageImages addObject:@"lalala yeyeye"];
NSLog(@"%@", testViewController.pageImages);