2016-02-05 41 views
0

當我有一個雨燕項目至極需要切換回來時,用戶點擊爲homeButton或任務界面(最喜歡的Bankingapps或的1Password一樣)來登錄的viewController。 Login Viewcontroller是最初的VC。幾天後我搜索了一下,但沒有找到任何有關這方面的信息。我如何在我的項目中實現它?顯示登錄界面擊中爲homeButton

謝謝

德克

+0

訂閱'UIApplicationWillEnterForegroundNotification',當你收到這樣的通知調用'-popToRootViewControllerAnimated'方法。 – holex

+0

@holex - 不應該是'UIApplicationWillResignActiveNotification'嗎? 「一個應用程序在接收事件時處於活動狀態,一個活躍的應用程序可以說是有焦點的,它在啓動後會獲得焦點,當覆蓋窗口彈出或設備被鎖定時會失去焦點,並在設備啓動時獲得焦點解鎖「。如果OP想要回去*離開*應用程序不進入它,我認爲該通知更適合。 (1PW「鎖定」離開,甚至收到通知) – Shirkrin

+0

是的,的確,我粘貼了錯誤的。:) – holex

回答

2

簡化對@holex一點,我的意見(和沒有工作的通知) 該解決方案將需要您的導航是基於你的登錄視圖控制器設置爲rootViewController一個UINavigationController

編輯:爲了確保您的應用程序是使用UINavigationController如上所述:

  • 打開Main.Storyboard

  • 如果你看到一個佈局這樣你已經設置: view layout in XCode

  • 否則選擇當前根視圖控制器

  • 從菜單中選擇編輯>嵌入>導航控制器
  • ,如果你不想要的導航欄可見,禁用「顯示導航欄」選項

END編輯

在這種星座,你可以做這樣的事情在你的應用程序委託:

// will get called just before the UIApplicationWillResignActiveNotification is posted 
func applicationWillResignActive(application: UIApplication) { 
    if let keyWindow = application.keyWindow, 
       navVC = keyWindow.rootViewController as? UINavigationController { 
     navVC.popToRootViewControllerAnimated(true) 
    } 
} 

這會強制彈出到根每當應用程序失去焦點。 從Apple文檔舉:

[應用]失去焦點,當疊加窗口彈出時,或者當設備被鎖定,

使用應用切換器或按home鍵都應該計入該類別。

我放在一個樣本項目上GitHub

+0

非常感謝,但我的應用程序永遠不會進入,如果。所以對我來說什麼都不做。我需要以某種方式聲明rootviewcontroller嗎? –

+0

@DirkHildebrand - 如果你能告訴我你的應用程序是使用storyboard還是所有的代碼設置等,我可以提供一個更好的示例。 – Shirkrin

+0

我使用Storyboards –