iPhone自定义UITableviewcontroller初始化问题

时间:2011-07-15 09:26:29

标签: iphone objective-c ios4

我的uitableview自定义控制器中的items数组永远不会从tmp数组中填充! debug命中init方法但self.items数组没有任何改变?

root控制器中的

MultiSelectionTableViewController *multiSelectionViewController = [[MultiSelectionTableViewController alloc] initWithNibName:@"MultiSelectionTableViewController" bundle:nil];

[self.navigationController pushViewController:multiSelectionViewController animated:YES];       
[multiSelectionViewController release];
在MultiSelectionTableViewController

@property(nonatomic,retain) NSMutableArray *items;
@synthesize items;

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
 self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
  if (self) {

    NSArray *tmp;
    tmp = [NSArray arrayWithObjects: @"Yes", @"No", @"Why not?", @"Depends..", nil];

    [self.items addObjectsFromArray:tmp];

 }
return self;
}

2 个答案:

答案 0 :(得分:2)

您必须在自定义VC中分配/初始化您的数组。

做:

self.items = [NSArray arrayWithObjects: @"Yes", @"No", @"Why not?", @"Depends..", nil];

代替。

或者,

NSArray *tmp;
tmp = [NSArray arrayWithObjects: @"Yes", @"No", @"Why not?", @"Depends..", nil];
self.items = tmp;

答案 1 :(得分:1)

self.itemsnil,因为它未分配和初始化,因此未填写或添加。你应该做

self.items = tmp;

或直接

self.items = [NSArray arrayWithObjects: @"Yes", @"No", @"Why not?", @"Depends..", nil];