以编程方式切换 MVC 视图控制器 - iOS
Posted
技术标签:
【中文标题】以编程方式切换 MVC 视图控制器 - iOS【英文标题】:Programmatically switching MVC view controllers - iOS 【发布时间】:2011-05-09 20:30:49 【问题描述】:如何在 ios 中以编程方式切换视图控制器?
示例 - 我有一个菜单 MVC 设置,现在我单击“帮助”如何以编程方式将其交给帮助视图控制器以加载该 MVC 设置?
【问题讨论】:
【参考方案1】:这是基于视图还是基于导航的应用程序?
对于基于导航的应用程序,您的 AppDelegate 应该为您提供对共享 UINavigationController 的访问权限,您可以使用它来推送/弹出 UIViewControllers
[self.navController pushViewController:helpViewController animated:YES]
然后当用户想要离开帮助视图并返回主屏幕时,您可以将其弹出。此功能由 UINavigationBar 中的左/后按钮自动提供,但您可以使用 popViewcontrollerAnimated 选择器手动触发它:
[self.navController popViewControllerAnimated:YES]
对于基于视图的应用程序,您可以通过操作子视图在屏幕之间移动
[window addSubview:helpViewController.view]
【讨论】:
虽然基于导航的 cmets 是值得的,但您可以使用以下方法打开自己的问题世界:[window addSubview:helpViewController.view]
。我不会对此大加赘述——这一切都已被报道过here。【参考方案2】:
使用实用程序模板应该是最快的解决方案。 您将拥有两个可以神奇地来回切换的视图。
但是,这些可以通过以下步骤来实现
触摸帮助按钮时,只需调用
[self presentModalViewController:(UIViewController *)modalViewController animated:(BOOL)animated];
HelpViewController 上应该有返回按钮
[self dismissModalViewControllerAnimated:(BOOL)animated]; //call to return back to parent view controller
玩得开心^^
【讨论】:
如果您想在两个以上的视图之间导航怎么办?我有一个有很多视图但不是线性的应用程序,所以我认为导航视图应用程序不合适。有什么建议吗? 标签栏应用程序是做你想做的事情的最合适的方式(用最少的努力)。以上是关于以编程方式切换 MVC 视图控制器 - iOS的主要内容,如果未能解决你的问题,请参考以下文章
在 Swift 中单击以编程方式切换到 TableViewCell 上的导航视图