问题标签 [poptoviewcontroller]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
10100 浏览

ios - [self.navigationController popToViewController:VC2 动画:NO]; 碰撞

嗨,我正在开发一个我应该去的应用程序:

  1. UIViewController1 到UIViewController2
  2. UIViewController2 到UIViewController3
  3. UIViewController3 到UIViewController4
  4. UIViewController4 回到UIViewController2

我正在使用UINavigationController. 当我使用时[self.navigationController pushViewController:VC2 animated:NO];[self.navigationController popViewControllerAnimated:NO];一切正常。

但是当我使用[self.navigationController popToViewController:VC2 animated:NO];from UIViewController4 应用程序终止说Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Tried to pop to a view controller that doesn't exist.'

以下是我的代码如何弹出到UIViewController2

当我打印导航数组时,它UIViewController在堆栈中显示 2。我UINavigationController从编辑器->嵌入->导航控制器中添加了

谁能告诉我为什么会这样?我试图搜索这个问题,但没有任何帮助

0 投票
2 回答
336 浏览

ios - 在点击导航返回按钮上转到其他一些 ViewController

通常,点击后退按钮会将我带到上一个视图控制器,但是当我点击后退按钮时我想转到其他视图控制器。所以这就是我所做的:

但这行不通。有人对此有任何想法吗?我很感激任何建议!

0 投票
1 回答
624 浏览

ios - 与 ios8、popToViewController 和 UIViewControllerHierarchyInconsistency 崩溃

iOS7、Xcode 和 5 一切都很好 - 在升级到 Xcode 6 和 iOS8 之后,应用程序突然崩溃,它一直运行良好。

崩溃时显示的错误是:

由于未捕获的异常“UIViewControllerHierarchyInconsistency”而终止应用程序,原因:“将根视图控制器添加为视图控制器的子级:”

我设法找到了造成问题的单行:

[self.navigationController popToViewController:[self.navigationController.viewControllers objectAtIndex:4] animated:YES];

该应用程序在锻炼时最多可添加 8 个视图;当练习完成后,回到最后一个视图,也就是练习的菜单,所以 4. 有点硬编码但简单而高效,因为它总是如此。

而且我不知道 popToViewController 正在这样做。

任何帮助或想法将不胜感激。

0 投票
1 回答
321 浏览

ios - Poptorootviewcontroller 有延迟

我有一个执行 poptorootviewcontroller 的方法“测试”。我想在 poptorootviewcontroller 的动画之前放一些延迟。这是我的代码:

但它不起作用。有什么帮助吗?谢谢!

0 投票
2 回答
198 浏览

ios - popToRootViewControllerAnimated 没有正确设置提示

我有一个简单的场景:一个带有多个嵌入 UITableViewControllers 的 UINavigationController。
每个 UITableViewController 都有一个提示集,除了 ROOT UITableViewController(没有提示)。
并且在每个 UITableViewController 中,都有一个 UIBarButtonItem 可以返回到 ROOT UITableViewController:

它实际上回到了 ROOT UITableViewController,但它保留了最后一个 UITableViewController 的提示,同时它假设删除它(知道 ROOT UITableViewController 没有提示)。
但是当我使用并多次使用代码点击自定义 UIBarButtonItem 时:

它按预期删除提示。

为什么 popToRootViewControllerAnimated 不删除提示?尤其是在 iOS 8.x 中。因为它在 iOS 7.1.2 中工作,
所以我使用最新的 Base SDK 8.1

0 投票
0 回答
981 浏览

ios - 如何取消 PresentViewController 动画

我有 viewController1(在 UINavigationController 中)呈现 viewController2 问题是当 viewController2 被呈现时(大约需要 0.2 秒),应用程序中的事件可能会导致 viewController1 被弹出。

然后我得到:

对 DetailsViewController 的开始/结束外观转换的不平衡调用:0x7e6191a0。

而且 viewController2 在屏幕上也被“孤立”了(没有办法删除它)..

这是代码(在 Xamarin c# 中,但在 Objective C 中存在相同的问题):

问题是 this.DismissViewController 实际上并没有在 viewController2 仍在动画时关闭它。

(如果正在进行 Push 动画,也会出现类似的问题)。

一个解决方案是将 PopToRootViewController 的请求“排队”并在 this.PresentViewController 的 completionHandler 中运行它。但这非常麻烦,意味着应用程序中的所有事件都必须排队,所有动画都必须有完成处理程序。

我真的需要一种方法来取消当前动画(this.View.Layer.RemoveAllAnimations() 不适用于 presentViewController),这样 DismissViewController 才能正常工作,并且可以毫无问题地调用 PopToRootViewController。

人们如何处理这个“不可取消的动画”问题?

更新:

还有一个相关的问题,现在我们必须使用 UIAlertController 而不是 UIAlert,请参阅背景:

如果已经显示警报,则显示 UIAlertController

在呈现 UIAlertController 之前,我们必须等待所有 presentViewController 动画完成。这对于我们想要在警报中显示的推送通知之类的东西来说很难,但它可能会在动画期间到达。

0 投票
1 回答
158 浏览

ios - popToRootViewcontroller 推送到同一个视图,在推送视图上点击返回时崩溃

目前我有一个 UITableViewController 和一系列选项卡。一旦我收到通知,我就会显示本地警报,当它被点击时,我会向用户显示当前对话。我的路径是。

UITableViewController > 房间 > 聊天对话

问题是。我认为 [nav popViewControllerAnimated:NO]; 因为它可以很好地将同一 VC 从一个对话推到另一个对话。但是当我点击后退按钮时它会崩溃。它执行来自 rootViewControler 的推送,但当我回击时无法找到通往房间的路。

代码:

堆栈跟踪:

0 投票
2 回答
3072 浏览

ios - iOS禁用按标签栏按钮弹出到根视图

我希望禁用按下我的标签栏并返回导航层次结构中的根视图的功能,同时在我的导航栏中为按钮保留此功能。

因此,我希望用户返回根视图的唯一方法是按下导航栏中的按钮,而不是点击标签栏按钮。

我环顾四周并尝试了几种解决方案,但似乎都不起作用,因为它们禁用了导航栏按钮和标签栏按钮的功能,而不仅仅是标签栏按钮。

谢谢!

0 投票
2 回答
773 浏览

ios - 删除 viewdisappear 上的子视图出现时再次添加 - 不工作 - ios sdk

我正在使用该应用程序,并希望在视图消失删除表视图,并希望在视图出现添加相同的表视图

目前

  1. 从 A ctr(push) -> B ctr

  2. 从 B ctr(push) -> C ctr - 我从 viewwilldisappear 的 superview 中删除了 B ctr 中的 tableview - 工作正常。

  3. 从 C ctr(pop) -> B ctr -- 在 B ctr视图中,我再次添加了表格视图。Viewwillaprea被调用,但tableview 未添加为子视图。

4 从 B ctr(pop) -> A ctr

  1. From A ctr(push) -> B ctr -- 这次在 B ctr tableview 出现。

似乎当我返回 popViewControllerAnimated 时,它没有将表添加为子视图。

我在xib中有表。

我想这样做是为了释放分配的内存。

桌景出口

删除 viewWillDisappear 中的表格视图

在 viewWillAppear 中重新添加

提前致谢

0 投票
1 回答
396 浏览

ios - 如何弹出未在 Swift 中初始化的 popToViewController?

我面临的问题是我在主屏幕上有四个视图控制器。如果用户直接从 Main VC 转到第二个视图控制器。我无法使用 popToViewController 导航到第一个 VC,因为在内存中我们只有两个 ViewController,即 Main VC 和我的第二个 VC。

如何导航到尚未初始化的第一个 VC?
代码如下:

请提出解决方案。提前致谢。

注意:我正在做 instantiateViewControllerWithIdentifier 但问题是它导航到我的第二个 VC,它不被接受。