2013-11-26 48 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];