问题标签 [viewwilldisappear]

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 投票
0 回答
310 浏览

uisplitviewcontroller - UISplitViewController 在 iOS 11.2 启动时加载视图之前调用 viewWillDisappear(_:)

我有一个以UISplitViewController作为初始控制器的应用程序,它有一个主视图控制器和一个详细视图控制器(嵌入在 UINavigationControllers 中)作为其子视图控制器,在 Interface Builder 中布局。拆分视图控制器的preferredDisplayMode设置为.primaryHidden

我刚刚升级到 Xcode 9.2,它在模拟器中使用 iOS 11.2。当我在 iPhone(设备或模拟器)上启动应用程序时,我在启动时看到了一个新行为:在详细视图控制器上的viewDidLoad()之前调用了viewWillDisappear(_:) 。此时细节视图控制器还没有加载——它的所有 IBOutlets 都是 nil。在该调用之后,系统加载视图并照常调用viewDidLoad() 。

我发现这一点是因为viewWillDisappear(_:)方法访问了 UITextField 以检查它是否是第一响应者。在下面的代码中,文本字段通过 IBOutlet 连接到 UITextField:

由于尚未加载视图,因此textfield为 nil 并且应用程序崩溃了。这很容易通过添加 nil 测试来解决。但是在早期版本的 Xcode 和 iOS 中,没有发生崩溃,因为我认为viewWillDisappear(_:)在加载视图之前没有被调用。

同样有趣的是,在 iPad(设备或模拟器)上运行 iOS 11.2 的 Xcode 9.2 不会发生这种情况。在 iPad 上,viewWillDisappear(_:)不会在详细视图控制器上启动时调用。

这似乎是一个错误:为什么要在启动时实际加载视图之前在详细视图控制器(或任何视图控制器)上调用viewWillDisappear(_:) 。是否有其他人在运行 iOS 11.2 的 iPhone 上使用 UISplitViewController 看到这种行为?还是我忽略了某些事情的结果,即使该应用程序在早期版本中没有问题?

0 投票
4 回答
1356 浏览

ios - 快速选择特定文本字段时移动视图

我创建了一个模因生成器应用程序来更好地学习 Swift 和 Xcode。我正在学习当用户与会被键盘阻挡的文本字段交互时移动视图。我有这个功能,但有一个例外。所需的功能是当用户为底部文本字段输入文本时让视图向上滑动,bot 顶部。无论用户正在与之交互的文本字段如何,视图都会向上滑动。

在此处输入图像描述

如何将此功能仅分配给底部文本字段?这是我的源代码:

0 投票
3 回答
194 浏览

ios - UINavigationBar 标题颜色

当我回到我的 main 时,为什么 navigationBar 标题没有将其颜色变为白色UIViewController?这是简单的代码(viewWillAppear, viewWillDisappear),但它不起作用,当我回到这个 VC 时,标题保持绿色。应用程序中的主要颜色也是绿色:

0 投票
1 回答
1070 浏览

ios - 使用 ViewWillDisappear 取消视图消失

我的应用程序使用 NavigationController。在后退按钮按下时,我会检查是否满足某个条件。如果没有,我想警告用户他们所做的工作将不会被保存。

我正在尝试使用该viewWillDisappear功能来执行逻辑等。

但是,如果用户希望取消导航,我不确定如何停止导航。

0 投票
1 回答
55 浏览

ios - iOS - 为什么我的下一个视图回调我以前的视图?

我的情况是下一个:
我有两个视图控制器。第一个包含一个UITableView. 当我点击一个单元格时,会调用第二个视图并显示另一个UITableView.

问题:
我的第二个视图立即显示,它被删除,我的应用程序返回第一个视图。

在调试模式下,我可以看到它viewDidLoad()被调用并且TableView已经被初始化,因为它已TableView被填充。

但是不知道为什么,立即调用 viewWillDisappear() ,就好像视图被移除了一样……

有人可以帮我吗?

编辑 :

我的第一个视图:

我的第二个观点:

说实话,这个项目很大,我两个月前就开始做,一个人做。我之前没有在 Objective-C 中工作,甚至更少使用 X-Code。我正在逐渐发现功能和 Objective-C ......

0 投票
0 回答
334 浏览

ios - 隐藏 pkhud HUD 在 vi​​ewWillDissapear 上不起作用

我在链中有几个 api 调用函数,根据需要显示 PKHUD hud 窗口,hud 运行良好,但我无法在 viewWillDissapear 中隐藏 hud,为了更有意义,我有 profileViewController,它是 UINavigationController 的一部分,它嵌套在视图层次结构中的 tabBarcontroller 中,像这样.在此处输入图像描述

在 profileVC 中,我有 3 个函数从 APIrequest 请求数据,每个函数都显示这样的 hud。

然后在 loadHouse 和 load 通知函数中使用不同的消息。

一切正常,事情是 ii 更改 tabbarcontroller 中的选项卡,并且 hud 尚未显示在 profileVC 中,然后加载为 profileVC 是呈现的 viewController。我试图隐藏 HUD 的内容如下。

但没有一个工作,当tabBarController更改标签栏项目但即使hud也没有隐藏时,还向观察者添加了一个通知,这只发生在第一次加载profileVC并且HUD现在还显示时,所以如果用户点击下一个标签栏项目,然后加载其他视图控制器,然后显示 HUD。我还检查内存泄漏但没有胶水为什么即使在执行 viewWillDissappear 时视图控制器也没有从内存中解除分配。

0 投票
4 回答
2325 浏览

ios - 如何将数据传递给父视图控制器

单击图像时,我正在对我的父 VC 执行 segue。我想将数据从子 VC 传递回父 VC。我一直在探索将数据传递回父 VC 的各种选项,但无法弄清楚。

由于子 VC 是 Navigation 的一部分,并且通过 segue 呈现(显示),因此应该有一种简单的方法将数据传递回父级。

怎么做?

我已经尝试过viewWillDisappear方法,但 parentVC 在以下代码中为零。

0 投票
1 回答
681 浏览

ios - 当前 ViewController 调用 viewWillDisappear 但不调用 viewWillAppear

以下是我的代码存在 Safari 视图控制器

上面的代码调用 viewWillDisappear 但在关闭呈现的视图控制器时不调用 viewWillAppear。

还发现视图被关闭后 viewWillDisappear 根本没有为任何其他 pushViewController 调用

如何解决这个问题?

对此进行更新:

尝试导航控制器并设置其委托并实现以下方法

这也不起作用。

更新此尝试以下代码

但是使用此标签栏不会隐藏,控制器不会全屏显示,并且目前没有隐藏底栏之类的选项。

0 投票
0 回答
50 浏览

ios - 在 viewWillDisappear 上显示 SVProgressHUD

上下文:我UIViewController正在显示一个编辑配置文件视图,其中包含一些UITextField(名字、姓氏、生日......)。没有“保存按钮”,一旦textFieldDidEndEditing调用,数据库中的值就会更新。

UIViewController如果用户尝试在所有数据库更新完成之前离开,我想显示一个加载视图(我正在使用 SVProgressHUD 库) 。

所以这是我的代码(如果 updateWaitingConfirm 为空,则意味着所有更新都已完成):

当所有更新完成时(或超过 maxTimeToWaitForUpdates(10 秒)),group.leave()调用super.viewWillDisappear()

问题是我的视图中没有任何内容,例如,我还尝试编辑文本字段,但它也不起作用。我也尝试view.layoutIfNeeded()在 showSVProgressHUD 之后打电话,但它不起作用。

很高兴知道:我不能只在我的后退按钮touchUpInside方法上调用一个方法,因为用户也可以退出UIViewControllerwith interactivePopGestureRecognizer

谢谢!

0 投票
2 回答
49 浏览

ios - 当我们关闭通知设置覆盖时,视图将不会触发

单击按钮时,我有一个视图控制器,我将用户带到应用程序设置。

当我从 appsettings 回到 app 时, viewwillappear 方法不会触发。

或者是否有任何其他方法可以让我们知道 appsettings 已关闭并且用户现在正在查看屏幕。