UITableViewController没有填充NSMutableArray

时间:2014-03-29 17:09:35

标签: ios objective-c arrays nsmutablearray uitableview

我有一个表视图控制器,FavoritesTableViewController,它有一个可变数组" citiesArray"。当按下一个城市按钮时,它会调用一个方法,该方法将一个对象添加到可变数组中。

[self.citiesArray addObject:@"New York"];

然后记录self.citiesArray的数量以及数组本身,并且看起来工作正常意味着它成功添加了字符串" New York"到阵列。所以现在我有一个填充的可变数组,并希望用它填充表格视图。

这是我的代码似乎无法正常工作。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
       UITableViewCell *cell=[tableView dequeueReusableCellWithIdentifier:@"cell"];
       if (cell==nil) {
            cell=[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"cell"];
       } 
       cell.textLabel.text=[self.citiesArray objectAtIndex:indexPath.row];
       return cell;
}

我之后尝试重新加载我的表格视图,但仍然无法正常工作。关于问题是什么的任何想法? 感谢

2 个答案:

答案 0 :(得分:1)

您必须添加方法以返回表中的行数:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return self.citiesArray.count;
}

答案 1 :(得分:1)

使用方法:

-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
    return 1;
}

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{  
    return self.citiesArray.count;
}

当然,如果您未设置表格的datasourcedelegate属性,则应该执行此操作,例如ViewDidLoad方法:

- (void)viewDidLoad
{
    [super viewDidLoad];

    //....Your code....

    table.delegate = self;
    table.datasource = self;
}