问题标签 [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 投票
1 回答
1740 浏览

ios - 如何正确使用popToViewController?

我想要做的是将所有以前的视图控制器从堆栈中弹出到“菜单”控制器。我有一段代码应该这样做,但是当点击“菜单”时,应用程序崩溃了。

崩溃的原因:“试图弹出一个不存在的视图控制器。”

这是我的代码的一部分:

0 投票
2 回答
878 浏览

ios - popToViewController 没有弹出所有的视图控制器

所以我有 3 个视图控制器:TableViewController、A 和 B。用户可以从任何视图控制器导航到任何视图控制器。

当用户在 A 和 B 视图控制器之间来回移动时,我希望它们被推送到导航上。堆。当按下“主页”按钮时,我希望使用 popToViewController 将视图控制器全部弹出回 TableViewController,而不是 popToRootViewController(出于某种原因)。

我有部分工作代码可以弹出最后访问的视图控制器,但现在所有代码都在两者之间。

我不确定为什么没有弹出所有视图控制器。

我用来检查推送和弹出内容的代码:

我也在检查内存的增加。

我将在需要时提供更多代码/信息。

任何帮助将不胜感激。

0 投票
4 回答
1969 浏览

ios - Swift 3:回到最后一个发送数据的 ViewController

我正在尝试通过发送数据返回我的 las viewController,但它不起作用。

当我只使用 popViewController 时,我可以返回页面,但我无法将我的数据从 B 移动到 A。

这是我的代码:

0 投票
1 回答
620 浏览

ios - popToViewController 后 pushViewController 上的应用程序崩溃

我试图搜索这个,但找不到任何完美的解决方案。我的应用程序有自定义动画视图和两个侧边抽屉。我也有自定义导航控制器,它有滑动顶栏。从 appDelegate 我将第一个控制器设置为 rootViewController,然后推送 ViewController(即带有动画的 mainViewController)。然后尝试推动第二个控制器。从第二个控制器,我可以在按钮 Click 上转到第三个控制器或 rootViewController。当我使用 popToViewController 从 secondController 返回后尝试转到第二个 viewController 时,应用程序崩溃。

我在 appdelegate 将 rootViewController 设置为:

将 ViewController(mainController) 推送为:

然后将第二个 viewController 推为:

从第二个视图控制器返回:

当我尝试从 viewController(mainController) 转到 secondViewController 时,应用程序崩溃。

0 投票
2 回答
78 浏览

ios - 过渡到 MainVC 给出没有子视图的空视图

我正在使用这种类型的过渡到UIViewcontroller

结果我想接收带有所有子视图的 MainVC ......但我只收到没有任何子视图的空主视图。我做错了什么?

更新: 我已经过渡到 MainVC,但它是空的,只有初始视图,没有所有子视图。是什么原因?

在此处输入图像描述

0 投票
0 回答
453 浏览

ios - 将 segue 弹回 Main(root) Viewcontroller 不起作用

我有Navigation Controller2 个 Viewcontrollers:MainVC(root)和SearchVC.

这是层次结构: vc的层次结构

首先,我使用从MainVC(“+”导航项)到的转换功能SearchVC

这个“+”推动过渡和关闭按钮“x”弹出过渡效果很好:

从 MainVc 过渡

SearchVCGMSAutocompleteResultsViewController用于搜索地点并尝试弹出MainVC使用goToVc()功能时(我依次检查了所有 3 个“弹出”选项的性能,但它们不起作用):

更新self.view.window!.rootViewController?.dismiss(animated: false, completion: nil)也不起作用

在所有三个“弹出到 MainVC”的情况下都过渡到MainVC不发生,并且弹出到当前的 VC:

upd :self.view.window!.rootViewController?.dismiss(animated: false, completion: nil)有同样的效果

回到 MainVC

我该如何解决这个问题,并过渡到MainVC??

0 投票
0 回答
76 浏览

ios - 带有模态的 PopToViewController

我目前正在试验 PopToViewController 并注意到如果我有以下情况,我会从方法中返回 null:

导航堆栈

UIViewController1 - 位置 0
UIViewController2
UIViewController3
UIViewController4
UIViewController5 模态呈现

我收到一个触发弹回 UIViewController1 的事件。当我从 UIViewController1 调用 NavigationController.PopToViewController 时,返回值为 null,但视图已从导航堆栈中删除,但模式保持打开状态。我似乎也没有得到任何被移除的 UIViewControllers 的生命周期事件。

这是期望的行为还是记录在任何地方?我可以理解保持打开状态的模式,但我不明白 PopToViewController 方法为什么会返回 null。

我要返回的 ViewController 肯定在导航堆栈中。

0 投票
2 回答
914 浏览

ios - 从 NavigationController 后退按钮返回多个 ViewController

当我单击 NavigationController 上的后退按钮时,我想返回两个 ViewController 而不是一个。

这几乎按照我想要的方式工作。更改 self.navigationController?.viewControllers[1] 让我可以转到堆栈中的任何 ViewController。我唯一的问题是它总是在直接转到我弹出的 ViewController 之前短暂地显示最顶层的 viewController。如何阻止它显示中间 ViewController?

我的问题是:

VC[0] → VC[1] → VC[2] → VC[3]

从 3 我想直接返回到 1 而不必显示 2。我想从 NavigationController 后退按钮执行此操作。

0 投票
1 回答
56 浏览

ios - 如何使用 poptoviewcontroller 返回到以前的控制器

我有 3 个视图控制器,A->B->C 但在 B 和 CI 之间有一个导航控制器。我的 C 控制器正在从用户那里获取一些信息,并将其保存在领域(本地数据库)中。退出该控制器时,我想转到 B 控制器并显示保存的一些数据,但是,当我尝试使用 popToViewController 时,它告诉我控制器不存在或者它只是崩溃了。我也试过

但它只退出控制器并且不会在我的 B 控制器上重新加载数据。有没有办法在 Swift 4 中使用 PopToViewController?

这就是我尝试使用它的方式:

我也试过:

但什么也没有发生。

0 投票
1 回答
90 浏览

ios - viewWillAppear 不调用 IOS 13 目标 C

我有一个在 Xcode 8 下创建的大型应用程序(所以它是老派)。我没有使用 swift 或情节提要,所有控件都是在代码中创建的。

由于移动到 IOS 13 / Xcode 11.3,当 VC 委托被推送到导航控制器上,然后调用 popToRootViewController 时,不会调用 rootViewController viewWillAppear。

我试过用

VC.modalPresentationStyle=UIModalPresentationFullScreen 没有任何行为变化。

我有一个包含窗口的 MainWindow.xib,并且 navController 设置为子视图

在 AppDelegate.m 中:

在 MainViewController

在 SelectSomethingViewController

此代码在以前的 Xcode 版本和 IOS 10 上运行良好,并且运行 viewWillAppear 中的代码,这对于应用程序的操作至关重要。在早期的 IOS 和 Xcode 上,无论是在模拟器上还是在实际设备上。

使用 IOS 13 和 Xcode 11.3,模拟器不会调用 viewWillAppear,但奇怪的是,在运行 IOS 13 并在 Xcode 中作为测试设备启动的实际设备上可以正常工作。我愿意解决问题或提出建议。