关闭uisplitviewcontroller中的NavigationController后如何重新加载tableView?
Posted
技术标签:
【中文标题】关闭uisplitviewcontroller中的NavigationController后如何重新加载tableView?【英文标题】:How to reload the tableView after dismissing a NavigationController in uisplitviewcontroller? 【发布时间】:2011-09-05 01:33:03 【问题描述】:我使用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 时调用它
[self dismissModalViewControllerAnimated:YES];
现在的问题是: 知道当 modalView 被解除时如何重新加载主 NavigationConteroller 和 detailViewController 的数据吗? 我没有线索 谢谢
【问题讨论】:
【参考方案1】:您应该查看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];
【讨论】:
效果很好。谢谢:D,我能够重新加载详细视图和根视图。太棒了 您好,我也在尝试这样做,但不确定将通知中心放在哪里。它应该上 rootviewcontroller 的课吗?还是 tableview(在 rootview 上)本身?【参考方案2】:在包含您要重新加载的视图的控制器中,您应该拒绝以下方法,该方法将在 modalView
被解除(或控制器的主视图首次加载时)调用:
- (void)viewWillAppear:(BOOL)animated
[super viewWillAppear:animated];
// here you can reload needful views, for example, tableView:
[tableView reloadData];
【讨论】:
viewWillAppear 或 viewdidappear 在您关闭 modalViewControler 后不会被调用以上是关于关闭uisplitviewcontroller中的NavigationController后如何重新加载tableView?的主要内容,如果未能解决你的问题,请参考以下文章
关闭与 uisplitviewcontroller 结合使用的模式视图后出现问题
在 iPhone 6 Plus 上关闭 UISplitViewController 弹出框时 UIWebView 被拉伸
关闭模式对话框时 iPad UISplitViewController 不必要地旋转