2015-03-02 107 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

相關問題