数组,不刷新tableview

时间:2010-01-19 05:49:24

标签: iphone uitableview nsmutablearray

我有一个项目列表,在模态视图控制器中,我有一个有效的“新项目”屏幕,用户可以在该屏幕中输入新内容。

该列表是一个UITableView,带有数据源NSMutableArray。

这是MVC上的代码

- (IBAction为)进行{

[RoutineTitle resignFirstResponder];
[RoutineInvolvment resignFirstResponder];

NSString *myString = RoutineTitle.text;
FirstViewController *FirstView = [[FirstViewController alloc] initWithNibName:@"FirstViewController" bundle:nil];

NSLog(@"Log the String: %@", myString);

[FirstView.routines addObject:myString];

[self dismissModalViewControllerAnimated:YES];

}

但是,当返回到常规屏幕时,它不会显示出来。我不确定它是不是正确地将它添加到数组,或者表视图是否需要刷新或什么。

任何帮助将不胜感激。 感谢

萨姆

3 个答案:

答案 0 :(得分:1)

你应该在你的`UITableView

上使用reloadData

[myTableView reloadData];

答案 1 :(得分:0)

-viewWillAppear:(BOOL)animated方法中,致电super后,您还应致电[self.tableView reloadData];

答案 2 :(得分:0)

您的代码没有任何意义。你在FirstViewController中调用-presentModalViewController吗?为什么要在-done方法中实例化一个新的FirstViewController?

当您展示“新项目”视图控制器时,您需要做的是将其传递给您的表视图和数据容器。像这样:

NewItemViewController *controller = [[NewItemViewController alloc] init];
[controller setTableView:firstViewTableView];
[controller setDataContainer:routines];
[self presentModalViewController:controller];
[controller release];

然后,在你的新项目视图控制器的-done:动作中,你可以将字符串添加到数据容器(NSMutableArray),然后像这样重新加载表视图:

- (IBAction)done:(id)sender;
{
    NSString *myString = RoutineTitle.text;
    [dataContainer addObject:myString];
    [tableView reloadData];

    [self dismissModalViewController];
}

您的NewItemViewController将需要两个@ syntheisze'd ivars,如下所示:

@property (nonatomic, retain) UITableView *tableView;
@property (nonatomic, retain) NSMutableArray *dataContainer;

如果您需要澄清,请告诉我。