2015-03-02 22 views
0

我做了一个应用程序,用户可以登录和注销。我检查,如果保存的用户存在(从早期的登录),如果用户保存我登录该用户,然后更改RootViewController的为窗口,以在登录状态下应该出现的视图 - 控制。更改窗口根视图控制器的效率如何?

// In LoginViewController 
let sb = UIStoryboard(name: "Main", bundle: NSBundle.mainBundle()) // Login viewcontrollers as login, facebook login, register is inside its own storyboard called Login 
let vc = sb.instantiateInitialViewController() as MainViewController 

let window = UIApplication.sharedApplication().delegate!.window!! 

window.rootViewController = vc 

但我只是想知道,这有多高效?

它会正确处理内存吗?

+0

Xcode提供了一系列分析工具。我建议你使用这些工具来确定内存/处理器的影响是否可以接受。 – 2015-03-02 15:20:25

+0

我不是很习惯仪器,我发现问一个可能已经知道的人更容易,而且回答者也会获得声望:D – Arbitur 2015-03-02 15:46:26

+0

您正试图优化某些东西而不知道这是一个问题。如果您在应用程序中遇到性能问题,那么您的*唯一*方法是使用仪器查找问题区域。堆栈溢出的人可以回答您提出的问题等个人问题,但不一定解决您的基本需求。 – 2015-03-02 15:49:42

回答

1

它没有做任何特别的事情。它与提交/解除视图控制器类似。

根视图控制器提供窗口的内容视图。 分配一个视图控制器此属性(以编程 或使用界面生成器)安装视图控制器的作为窗口的 内容视图图。如果窗口有一个现有的视图 层次中,新的安装 之前被删除的旧观点。

只要您正确处理内存(视图,视图控制器,委托等之间没有保留周期),它将正确处理内存。

当然详述号码可使用时间,分配剖面测量仪器(如@Ian MacDonald suggested

题外话中找到一个比特:作为对我来说是到的登录/登出状态之间切换的优选方式应用程序。我相信这种方法可以简化登录/注销状态之间的屏幕导航:一旦登录,就会将root vc更改为数据控制器,并忘记登录信息。

+0

感谢您的回答,这就是我一直在寻找的。是的,我认为这是一个非常好的解决方案,可以在登录时更改root vc,然后在登出后再次登录vc并跳过登录视图,如果保存的用户存在:) – Arbitur 2015-03-02 15:44:43

相关问题