我尝试将数据发送到didSelectRowAtIndexPath方法中的标签栏控制器。当我第一次发送带有数据的数组时它工作正常,但是当数组的数据发生变化并再次发送它时,第二个标签栏的数组保持与第一次相同。你能帮我理解为什么吗? 代码:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
if(cell.accessoryType == UITableViewCellAccessoryNone) {
cell.accessoryType = UITableViewCellAccessoryCheckmark;
[_arrayToPass addObject:[_data objectAtIndex:indexPath.row]];
}
else {
cell.accessoryType = UITableViewCellAccessoryNone;
[_arrayToPass removeObject:[_ingridients objectAtIndex:indexPath.row]];
}
NextTableViewController *nextController = (NextTableViewController *) [self.tabBarController.viewControllers objectAtIndex:1];
nextController.items = _arrayToPass;
}
然后在nextController中我想填充tableView的内容为" items"阵列。 在
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath: (NSIndexPath *)indexPath
{
static NSString *simpleTableIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:simpleTableIdentifier];
}
cell.textLabel.text = [_items objectAtIndex:indexPath.row];
return cell;
}
答案 0 :(得分:0)
你的问题含糊不清。你提到它第一次工作但不是第二次工作,但是从来没有说明这意味着什么。您发布了在NextTableViewController中设置属性的代码,但是没有说明您对该属性的处理方式。从NextTableViewController发布方法,该方法使用items属性执行某些操作。
如果我不得不猜测,我猜你会在viewDidLoad方法中处理它,该方法在首次显示VC时只调用一次。
您应该在NextTableViewController的viewWillAppear:animated
方法中添加代码,该方法可以执行item属性所需的任何操作。