UINavigationController始终使用相同的数据加载表视图

时间:2010-10-11 14:40:25

标签: objective-c uinavigationcontroller ios4 uitableview

我有一个基于导航控制器的应用程序。我的观点包括两个如下所示的表格:

Category
    Item within category

基本上我允许用户使用导航栏上的+按钮创建类别。然后他们选择一个类别,然后可以再次按+按钮创建该类别中的项目。

我的问题是,如果我创建一个类别,并添加一些项目,然后返回并选择一个不同的类别,将显示第一个类别中的相同项目。

这是我用来在didSelectRow中创建项目控制器的方法:

if (detailViewController==nil) 
     detailViewController = [[ItemViewController alloc] init];

 detailViewController.category = [[APP_DELEGATE listsArray] objectAtIndex:indexPath.row];
 [self.navigationController pushViewController:detailViewController animated:YES];

来自ItemViewController中的viewDidLoad:

items = [[NSMutableArray alloc] initWithCapacity:30];

如何停止为每个项目显示相同的项目?

由于

编辑:

填充项目的代码:

- (void)addNameController:(AddName *)addNameController didAddName:(NSString *)name {

if (name) {
    NSLog(@"%@", name);
    [items addObject:name];
    [self.tableView reloadData];
}
[self dismissModalViewControllerAnimated:YES];
}

1 个答案:

答案 0 :(得分:1)

将items数组的初始化移动到ItemViewController中的viewDidAppear并调用reloadData。只有在第一次分配和推送ItemViewController时才会调用viewDidLoad。