我有一个项目列表,在模态视图控制器中,我有一个有效的“新项目”屏幕,用户可以在该屏幕中输入新内容。
该列表是一个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];
}
但是,当返回到常规屏幕时,它不会显示出来。我不确定它是不是正确地将它添加到数组,或者表视图是否需要刷新或什么。
任何帮助将不胜感激。 感谢
萨姆
答案 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;
如果您需要澄清,请告诉我。