当我触摸后退按钮时,为啥 UINavigationController 不弹出 UITableViewController?

Posted

技术标签:

【中文标题】当我触摸后退按钮时,为啥 UINavigationController 不弹出 UITableViewController?【英文标题】:Why isn't UINavigationController popping UITableViewController when I touch the back button?当我触摸后退按钮时,为什么 UINavigationController 不弹出 UITableViewController? 【发布时间】:2010-09-03 11:55:04 【问题描述】:

navigationBar 返回,但视图保持不变。什么给了?

【问题讨论】:

尝试发布代码。没有人会看到只看到一行问题的原因....可能是您推送了两次或可能是其他原因..请发布推送代码... 【参考方案1】:

我想通了。我在 viewDidAppear 上滚动到 uitableview 的底部,但如果 tableView 为空,调试器控制台会吐出:CoreAnimation: ignoring exception: -[UITableView scrollToRowAtIndexPath:atScrollPosition:animated:]: row (-1) beyond bounds (0) for section (0). 这是因为我滚动到 indexPath = [messages count] - 1 处的行,其中 messages 是表数据源.我认为这很好,因为它没有崩溃,但是当我在此之后回击导航栏时,导航栏会返回,但 tableView 仍然存在。奇怪的。好吧,我通过一起注释掉 viewDidAppear 方法来修复异常。在滚动到 tableView 底部之前,我还可以添加一些逻辑来检查消息是否为空,但无论如何滚动并不能完全按照我的意愿工作。它显示 tableView,然后滚动到底部。我希望它在 tableView 出现之前滚动到 tableView 的底部,就像 iPhone Messages 应用程序(用于文本消息传递)一样。我也想闪烁右边的滚动条来显示视图滚动到底部。

【讨论】:

以上是关于当我触摸后退按钮时,为啥 UINavigationController 不弹出 UITableViewController?的主要内容,如果未能解决你的问题,请参考以下文章

UINavigation 后退按钮的问题与“多页”父视图一起使用

为啥当我单击基于导航的应用程序上的后退按钮时未调用 viewdidunload 函数

为啥浏览器的后退按钮会弄乱我的 Vue 组件?

当我们单击 android 设备中的后退按钮时,Sencha 触摸选择字段没有关闭

为啥我需要按两次后退按钮才能第一次关闭片段?

后退按钮的背景图像在触摸 iOS 7 之前不会出现