UINavigationController的问题

时间:2011-07-19 17:29:55

标签: objective-c ios uinavigationcontroller

我在我的应用中使用UINavigationController。在“返回”的同时,我想跳过一个视图。我目前正在做的是:

在视图的viewDidAppear中,我不想看到我检查是否从后退按钮点击出现,如果是这样,我打电话:

[self.navigationController popViewControllerAnimated:YES];

但是会发生什么:

不需要的视图和前一个视图变形为一个视图(一个在另一个视图之上)。

更多解释:

不受欢迎的视图是第二个视图,我想转到rootview: 我使用的另一个代码是:

[self.navigationController popToRootViewControllerAnimation:YES]

这种方法的问题是2:    a)我仍然在导航栏中找到一个我不应该得到的后退按钮    b)应该存在的工具栏项目不存在。 (但工具栏本身就在那里!)

有谁可以让我知道我在这里做错了什么?感谢。

2 个答案:

答案 0 :(得分:4)

你可以试试这个:

int count = [self.navigationController.viewControllers count];
[self.navigationController popToViewController:[self.navigationController.viewControllers objectAtIndex:count-2]]

请记住,count是一个从0开始的数组,所以只需要计数 - x,考虑到这一点。

此外,我很确定这会起作用,但看起来并不干净:

UINavigationController *navController = self.navigationController;

[navController popViewControllerAnimated:NO];
[navController popViewControllerAnimated:YES];

希望有所帮助。

答案 1 :(得分:0)

为了解决这个问题我需要做的是这个::

从第3个视图和动作处理程序popToRootViewController中自定义后退按钮功能

感谢。