Spa*_*het 7 objective-c uinavigationcontroller modalviewcontroller ios uistoryboard
在为我的一个项目试用故事板时,我遇到了一些我没有很好解决方案的东西;
我有一个基于导航的应用程序,它显示了一个UITableViewController.tableView使用用户创建的元素填充.点击元素单元格会调出详细视图控制器.用户可以通过点击tableView中的按钮来创建新元素.这将打开一个模态视图,它将处理创建.
现在,当用户完成创建元素并解除模态视图控制器时,我希望用户看到相应的新细节视图控制器而不是tableview.但我无法弄清楚如何在故事板中实现这一目标.
有没有人有这个好的模式?
现在的情况
TableView --(tap create)--> creation modal view --(finish creating)--> TableView
Run Code Online (Sandbox Code Playgroud)
应该
TableView --(tap create)--> creation modal view --(finish creating)--> detail view
Run Code Online (Sandbox Code Playgroud)
我能想到的最好的模式与代码中的旧模式相同。
将属性添加(nonatomic, weak) UINavigationController *sourceNavigationController到模式视图控制器。当需要关闭模态视图控制器时,添加以下代码:
DetailViewController *detailViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"DetailViewController"];
detailViewController.element = newlyCreatedElement;
[[self sourceNavigationController] pushViewController:detailViewController animated:NO];
Run Code Online (Sandbox Code Playgroud)
为了确保设置正确,请在TableViewsourceNavigationController中添加以下代码:prepareForSegue:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([segue.identifier isEqualToString:@"newElementSegue"]) {
[[segue destinationViewController] setSourceNavigationController:self.navigationController];
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1871 次 |
| 最近记录: |