2010-01-19 53 views
1

我有一个项目列表,并在一个模式视图控制器中,我有什么是有效的'新项目'屏幕,其中用户可以在列表中键入一个新的东西。Array,not refheshing table view

该列表是一个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]; 

[自dismissModalViewControllerAnimated:YES];

}

但是,当返回到普通屏幕时,它不会显示出来。即时通讯不知道,如果它没有正确添加到阵列,或者如果表视图需要刷新或什么。

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

山姆

回答

0

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

当你展示你的'新项目'视图控制器时,你需要做的是将它传递给你的表视图和数据容器的引用。事情是这样的:

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

然后,在你完成度的数:您的新项目视图控制器的作用,你可以将字符串添加到数据容器(NSMutableArray的),然后重新加载这样的表视图:

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

    [self dismissModalViewController]; 
} 

你NewItemViewController将需要两个@ syntheisze'd高德这样的:

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

让我知道你是否需要澄清。

+0

嗨马特,感谢您的回复。 这部分FirstViewController * FirstView = [[FirstViewController alloc] initWithNibName:@“FirstViewController”bundle:nil]; 是这样的例程数组可以在这两个类中使用。一位朋友告诉我这样做。 你的soloution会做同样的事情吗?将字符串添加到数组中,然后重新加载数据? – 2010-01-19 07:11:41

+0

和setTableView:做什么?以及'''之后我应该如何设置: – 2010-01-19 07:31:27

+0

-setTableView:应该只是在调用-presentModalViewController的视图控制器中引用表视图。如果该视图控制器是一个UITableViewController,那么你可以传递它[自我tableView]。如果没有,你需要为你在视图控制器中使用的UITableView创建一个插座。 – 2010-01-19 16:52:38

1

你应该在你的`的UITableView

[myTableView reloadData]; 
+0

6 am here ..对不起,编辑我的帖子 – 2010-01-19 06:36:42

0

使用reloadData在你-viewWillAppear:(BOOL)animated方法,你打电话super后,你应该也呼吁[self.tableView reloadData];