2013-11-26 75 views
0

我們正在制定一個學校選擇系統,顯示學校列表。 當我按學校時,它會進入下一個屏幕。 當我到達下一個屏幕,我想回到學校選擇屏幕時,按下導航欄「back <」項目,它會轉到第一個屏幕,而不是進入學校選擇屏幕。IOS導航欄保持選擇

所以問題就是簡短。

如何讓navbar BACK按鈕忘記我之前選擇的選項並返回到學校選擇屏幕。

在此先感謝

回答

0

使用popViewController,將帶你回來只有一個屏幕。

0

你有3種持久性有機污染物的:

- (UIViewController *)popViewControllerAnimated:(BOOL)animated 
- (NSArray *)popToRootViewControllerAnimated:(BOOL)animated 
- (NSArray *)popToViewController:(UIViewController *)viewController animated:(BOOL)animated 

如果有學校選擇之前更視圖控制器,你可以回去了兩種顯示控制器:

NSArray* viewControllers = self.navigationController.viewControllers; 

[self.navigationController popToViewController:[viewControllers[viewControllers.count-1]] animated:YES]; 

如果你的學校的選擇是根那麼你可以直接跳到你的rootViewController:

[self popToRootViewControllerAnimated: YES] 
+0

問題是,導航欄後退按鈕不使用ViewDidLoad,這是我們的主要問題。 不知何故,我們無法使用彈出窗口,因爲viewcontroller不包含導航欄項目。 我們使用導航控制器。 任何計劃或我在這裏犯了一個錯誤? – user3035721

+0

當你做「流行」你不加載視圖。他們已經加載。唯一可以調用的方法是viewWillAppear和viewDidAppear。 –

+0

好的,我可以簡單地在我的viewcontroller類中使用這個POP方法嗎? – user3035721

0
`[self.navigationController popToViewController:SchoolSelectionViewController];` //replace SchoolSelectionViewController with the name of School selection screen 
0

[self.navigationController popViewControllerAnimated:YES];