我使用UISplitviewController
作为模板。
编辑按钮的操作:
newExViewController *editWindow =[[newExViewController alloc]initWithNibName:@"newExViewController" bundle:nil];
UINavigationController *navBar=[[UINavigationController alloc]initWithRootViewController:editWindow];
navBar.modalPresentationStyle = UIModalPresentationFormSheet;
navBar.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentModalViewController:navBar animated:YES];
[navBar release];
[editWindow release];
navBar
有一个UIBarButton
用于saveButton。按SaveButton
[self dismissModalViewControllerAnimated:YES];
现在是问题所在: 任何想法当modalView被解散时如何重新加载主NavigationConteroller和detailViewController的数据? 我没有线索 日Thnx
答案 0 :(得分:7)
你应该研究NSNotificationCenter
。在使用UITableView的视图中,创建通知侦听器。然后在解散的视图中,调用该通知。
更具体地说,通知将调用应包含reloadData
。
以下内容应与您要重新加载的UITableView一起使用:
这可能与您的[self dismissModalViewControllerAnimated:YES];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(someMethodToReloadTable) name:@"reloadTable" object:nil];
您可以通过以下方式致电通知中心重新加载表格:
[[NSNotificationCenter defaultCenter] postNotificationName:@"reloadTable" object:self];
通知方法示例:
- (void)someMethodToReloadTable:(NSNotification *)notification
{
[myTableView reloadData];
}
不要忘记删除通知观察者:
-(void)viewDidUnload
{
[[NSNotificationCenter defaultCenter] removeObserver:self name:@"reloadTable" object:nil];
}
答案 1 :(得分:3)
在包含要重新加载的视图的控制器中,您应该拒绝以下方法,当modalView
被解除时(或者控制器的主视图将首次加载时)将调用该方法:
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
// here you can reload needful views, for example, tableView:
[tableView reloadData];
}