objective-c - UINavigationController 的问题

标签 objective-c ios uinavigationcontroller

我在我的应用程序中使用 UINavigationController。当“返回”时,我想跳过一个 View 。我目前正在做的是这样的:

在 View 的 viewDidAppear 中,我不想看到它,我检查它是否通过后退按钮单击出现,如果是,我调用:

[self.navigationController popViewControllerAnimated:YES];

但是发生的事情是这样的:

不需要的 View 和前一个 View 会变成一个 View (一个 View 位于另一个 View 之上)。

更多说明:

不需要的 View 是第二个 View ,我想转到 Root View : 我使用的另一个代码是:

[self.navigationController popToRootViewControllerAnimation:YES]

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

任何人都可以让我知道我在这里做错了什么吗?谢谢。

最佳答案

你可以试试这个:

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

请记住,count 是一个从 0 开始的数组,因此只需执行 count - x,并考虑到这一点。

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

UINavigationController *navController = self.navigationController;

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

希望有帮助。

关于objective-c - UINavigationController 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6751414/

相关文章:

iOS:加载时 UIImage 的随机位置

ios - UISegmentedControl 在解散后更改色调颜色

ios - 使用内联样式更改日期选择器的字体颜色

ios - 在 iOS 中是否有向后滑动手势的回调?

ios - 在将 View Controller 推送到导航堆栈之前调用 viewDidAppear()

objective-c - 什么时候在 iOS 中使用惰性实例化?

ios - 如何在 iOS 7 中更改 UITabBar 外观

ios - 如何通过单击具有 UITableViewCell 类的 .xib 文件内的按钮来传输 UIViewController?

objective-c - XCode 4 - 创建 AppController 标准?

ios - 选择 TableView 单元格时(一次)无法触发segue