ios - 关闭模态呈现的 View 使标签栏 Controller (某种)重置

标签 ios objective-c modal-dialog uitabbarcontroller dismiss

我有一个将标签栏 Controller 作为主 Controller 的应用程序。每个选项卡都有一系列带有导航 Controller 的 View ,我通常会在堆栈中推送和弹出这些 View 。

奇怪的问题是

案例 1:如果我创建一个 UINavigationController 并将一个新的 viewController 作为它的根,并呈现这个 NavigationController。在这个新的导航堆栈中,我可以轻松地以模态方式呈现 View 并毫无问题地关闭它。

案例 2:现在没有创建新的 UINavigationController,我呈现了一个 View ,当我关闭一个 View 时,下面的 View 表现得很奇怪。例如,呈现 View 是 UICollectionView,它只是滚动回到第一个单元格,就像它正在执行“重新加载”操作和“滚动到”第一个单元格一样。如果 presentingView 是从 rootView 推送的 View ,它只会 popToRoot View ,这绝对不是故意的。

在我实现 UITabbarController 之前我没有遇到这个问题,所以我想,我应该了解更多在 UITabbarController 中呈现 View 和关闭 View 时发生的事情。

我猜,当关闭 UITabbarController View 中的 View 时,它会将所有内容“重置”到当前选项卡的第一个 View 。我真的不确定这是真的。

我知道这有点概念性,但我忍不住认为这里一定缺少一些关键的东西。

最佳答案

我犯了一个愚蠢的错误,我将 UITabbarController 子类化并在 viewDidAppear 而不是 viewdidLoad 中定义导航 Controller ,因此当我将窗口的 Root View 设置为标签栏 Controller 时,导航 Controller 设置不正确。这就是为什么所有朋克的事情都发生了。如果只是崩溃而不是这种奇怪的行为会更好。

关于ios - 关闭模态呈现的 View 使标签栏 Controller (某种)重置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32953882/

相关文章:

ios - 获取对象 NSDictionary 的键

objective-c - 如何全局观察 didEnterFullScreenNotification?

jquery - 如果#hash 在 url 中,则将类添加到正文

php - 如何在 Bootstrap Modal 中传递 GET 变量?

ios - 关闭 View Controller 在帮助器类 Swift 中不起作用

ios - 当应用程序被杀死或未运行时,如何从 IOS 应用程序的推送通知中打开特定 View ?

android - 使用 iPad 和 Droid 应用程序中保留的格式导入、解析、编辑和保存 RTF 文档

ios - 在外部浏览器中打开 URL(在 IOS 应用程序中)形成 Mopub 订单

ios - iOS 64 位模拟器真的是 64 位的吗?

javascript - Jquery 似乎无法定位模态的内容