2013-05-20 195 views
0

在我的故事板中,我有2个VC:VC1是登录页面,VC2是用户登录后我的应用程序的主页。在视图之间转换:在segues和代码之间转换

1)从一个视图切换到另一个视图的最佳方式是使用模态轮廓?它是否正确?

二,我想知道我的故事板中的segues是如何“翻译”成代码的? 我有两种类型的塞格:莫代尔和推。

我一直在我的代码中使用performSegueWithIdentifier方法,但现在我想知道在这个方法背后发生了什么。 模式是否被翻译为[self presentModalViewController:newVC]方法? 推播是否翻译成[self.navigationController pushViewController:newVC]

没有更多真的发生?

回答

0

关于你的第一个问题,一如既往的答案是:这取决于你的需求。 如果您主要对“丢弃”前一个视图控制器感兴趣,那么是的,如果您希望让用户浏览您的视图控制器,那么可能需要一个模式segue,如果您希望让用户浏览您的视图控制器,那么使用push segues的导航控制器可能是更好的方式,甚至是一个标签视图控制器。但是,这又取决于你的需求。

至于你的第二个问题,看看这个guide。 segue是类UIStoryboardSegue的一个实例,它保持对源视图控制器和目标视图控制器的引用。在实际执行segue(实际执行转换的方法perform)之前,会调用源视图控制器的prepareForSegue(这使您有可能在转换发生之前做一些额外的设置),然后发生实际转换通过方法perform,其中显示了一些动画,并根据segue的类型调用presentViewController:animated:completion:pushViewController:(您可以通过覆盖初始方法和此方法创建自定义细分)。