在不使用故事板中的导航控制器的情况下在 UIViewController 之间切换的最佳方法是啥?
Posted
技术标签:
【中文标题】在不使用故事板中的导航控制器的情况下在 UIViewController 之间切换的最佳方法是啥?【英文标题】:What is the best way to switch between UIViewControllers without using a navigation controller in storyboard?在不使用故事板中的导航控制器的情况下在 UIViewController 之间切换的最佳方法是什么? 【发布时间】:2012-06-27 18:11:21 【问题描述】:请参考下图 -
我没有使用 NavigationViewController。使用故事板和segues时有没有办法在视图之间切换?我知道另一种方法是使用根视图控制器并以这种方式切换视图。只是想知道是否有其他方法可以做到这一点。
谢谢!
【问题讨论】:
【参考方案1】:您可以:
使用导航控制器,但只是隐藏它(在故事板的 Interface Builder 设计中,以及在运行时通过 setNavigationBarHidden:animated:
以编程方式在 viewDidLoad
中)。因此,pushViewController
(或简单的推送转场)和popViewController
可以在没有导航栏用户界面的情况下工作。
使用模态转场(即在幕后使用presentViewControllerAnimated
)和dismissViewControllerAnimated
。
【讨论】:
所以我只需要为segue设置一个标识符并将类型设置为'modal'然后使用[self performSegueWithIdentifier:@"mySegue" sender:sender];对吗? 如果我想回到初始视图怎么办?我需要从第二个视图转回第一个视图吗? (在这种情况下 - 我如何从 LoginSuccessViewController 或 ResgiterSuccessViewController 返回 LoginViewController?) @wackytacky99 只需从相应的确认视图控制器调用dismissViewControllerAnimated
。【参考方案2】:
它不需要navigationController 来使用segue。只需在 Storyboard 中设置和标识 Segue 的任何地方使用 [self performSegueWithIdentifier:@"mySegue" sender:sender];
行。
【讨论】:
您仍然需要确定该segue 是push
还是modal
segue,对吗?除非你有导航控制器,否则你不能推动。即使你做了一个custom
segue,你的自定义代码也需要决定pushViewController
或presentViewControllerAnimated
。以上是关于在不使用故事板中的导航控制器的情况下在 UIViewController 之间切换的最佳方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章