我有两种方法可以从一个视图控制器跳到另一个

对于presentViewController

  [self presentModalViewController:view animated:YES];


对于pushViewControlle应该使用

[self.navigationController pushViewController:view animated:YES];


哪种方法最好?

哪个会导致更多的内存泄漏?

如果我们的设计类似于

Introduction view (bunch of slides )-> login -> signUp-> HomeActivityScreen-> Then Bunch of tab bar in it

最佳答案

如果您使用pushViewController,则会在导航栏中自动获得“返回”按钮。如果使用presentModalViewController,则不会,通常必须实现自己的控件和/或回调来处理关闭控制器的情况。

从概念上讲,模态表示风格通常用于无法导航的原子任务(即,您完成了该任务或取消了该任务,除非执行一项或多项操作,否则您无法在应用程序中执行其他任何操作)。

如果您想知道为什么首先要有区别,我不能说。就我个人而言,我认为提供统一API以便从一个控制器迁移到另一个控制器(例如cocos2d或Android)的框架更具意义。

您可以使用模式视图控制器将用户的注意力集中在Task上。按下时,用户处于某种导航流程中,但总的应用程序仍在他们的指尖。他们可能决定前进还是后退,在中间切换到其他选项卡,无论如何。获得模态视图控制器后,他们将无法执行任何操作,直到任务完成或被取消(模态视图已关闭)

当您呈现模式视图控制器时,系统会在执行呈现的视图控制器和所呈现的视图控制器之间创建父子关系。具体来说,进行呈现的视图控制器更新其modalViewController属性以指向其呈现的(子)视图控制器。同样,提供的视图控制器更新其parentViewController属性,使其指向提供该视图的视图控制器。

模态视图控制器提供了有趣的方式来管理应用程序流。最常见的是,应用程序将模式视图控制器用作临时中断,以便从用户那里获取关键信息。但是,您还可以使用模态呈现的视图控制器在特定时间为您的应用程序实现备用接口。

因此,据我了解,这是最好的选择。

[self.navigationController pushViewController:view animated:YES];

关于ios - presentModalViewController vc pushviewcontroller的内存消耗,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39586997/

10-10 22:25