2013-05-31 45 views
0

所以我有一個應用程序,當它啓動後它會在登錄後進入LoginViewController,它執行一個到NavigationController的模態轉換,其中根是下一個MainViewController。如果我想實現註銷功能,那麼最好的方法是什麼?我是否應該通過編程方式將模式轉換回LoginViewController,或者有什麼方法可以輕鬆地在啓動vc時重新啓動應用程序?我希望如果我做一個模式轉換回到LoginViewController的MainViewController將不會仍然運行。從頭開始啓動應用程序。註銷功能

謝謝!

+0

你是什麼意思的「MainViewController將不會仍在運行」?你關心什麼?視圖通常不運行。他們等。 –

+0

@馬庫斯亞當斯。可以說我有一個計時器,每分鐘從互聯網上進行自動刷新。如果我使用模式轉換返回登錄,定時器是否仍在運行? – Alan

回答

2

您不應該使用模態轉換「返回」 - 這實際上不會返回,它會創建一個新的LoginViewController。如果你想返回到LoginViewController的同一個實例,你應該關閉導航控制器。如果你做的模式轉變控制器階層將是這樣的:

LoginViewController - > NavigationController - > MainViewController - > LoginViewController

當你做一個模式過渡,呈現視圖控制器保持較強的指針到呈現視圖控制器,所有這些控制器將仍然「活着」,並且您的計時器將繼續運行。

我會使用不同的結構。我會讓導航控制器成爲窗口的根視圖控制器,並從MainViewController的viewDidAppear方法呈現(如果需要)LoginViewController。當你完成它,解僱它。如果您需要再次註銷,請再次以模態方式呈現。

+0

+1。很好的答案,這是我過去所做的。 –

+0

@rdelmar是啊,我覺得它會發生這樣的事情。我如何從RootViewController的模式視圖中關閉NavigationController?我嘗試了幾個包括'self.parentViewController.navigationController' – Alan

+0

@Alan,我不確定你在說什麼控制器。你是在MainViewController中,還是從模式中提出的,還是其他的? – rdelmar

相關問題