2013-11-24 159 views
0

我想原因請看回到主屏幕,並從棧中彈出的一切 我使用UINavigationControllerSegue公司到家裏查看

[self.navigationController popToRootViewControllerAnimated:YES]; 

我到什麼地方調用這個方法?我嘗試過-(void) prepareForSegue,這不起作用。 基本上我想確保當我回到主屏幕時,標題左側沒有後退按鈕。
這裏的主屏幕是指我的應用程序的歡迎屏幕。

我不確定我的代碼的哪一部分應該發佈。如果您需要查看我的代碼,請發表評論。

預先感謝您。

+0

Popping控制器與segue無關(通常至少)。您可能希望在用戶操作或某些程序邏輯讓您想要進入歡迎屏幕的任何位置放置該代碼。 –

+0

什麼是您的部署目標版本。因爲 - iOS 5中的Storyboard不提供「無代碼」的方式從一個segue返回 – codercat

+0

popviewcontroller只有在你被推送時纔有效。 – codercat

回答

0

假設你正在使用Storyboard,並且在那裏聲明的UIButton是觸發你要執行的動作的那個,你應該在.h中聲明一個IBAction:-(IBAction)buttonPressed:(id)sender;並在.m中實現它。該方法內應該出現[self.navigationController popToRootViewControllerAnimated:YES];代碼。當記得在故事板裏面時,請記住將該動作附加到該UIButton上。

希望它有幫助!

+0

謝謝你的回覆。爲了更好地說出我的問題,它與沒有後退按鈕的繼續相同。我該怎麼做? – Ra1nWarden

+0

我還是不明白你想做什麼。當你彈出到rootViewController時,沒有後退按鈕。爲什麼?因爲你正在彈出根視圖。沒有後視圖。你想要一個UIButton來執行'[self.navigationController popToRootViewControllerAnimated:YES];'動作或你想要發生什麼? – FabKremer

+0

這就像完成一項任務時返回主菜單一樣。如果從任務結束時進入主菜單,標題欄左側有一個後退按鈕?我不想讓那個按鈕看起來像剛剛啓動的應用程序。 – Ra1nWarden

0

我認爲你的困惑是圍繞着什麼是segue以及它如何與導航控制器堆棧相關的概念。該堆棧與基本數據結構堆棧(http://en.m.wikipedia.org/wiki/Stack_(abstract_data_type))完全相同,因爲它是後進先出存儲。當你繼續時,你通常會添加到該堆棧,例如將一個新的VC推入堆棧。在大多數情況下後退按鈕不會這樣做。它會彈出,或從堆棧中移除。這就是爲什麼你可能不會從prepareForSegue方法調用pop方法。而是嘗試在其他點調用它,比如當他們點擊後退按鈕時,或者在發生某些操作後。