问题标签 [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.
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 看到这种行为?还是我忽略了某些事情的结果,即使该应用程序在早期版本中没有问题?
ios - UINavigationBar 标题颜色
当我回到我的 main 时,为什么 navigationBar 标题没有将其颜色变为白色UIViewController
?这是简单的代码(viewWillAppear
, viewWillDisappear
),但它不起作用,当我回到这个 VC 时,标题保持绿色。应用程序中的主要颜色也是绿色:
ios - 使用 ViewWillDisappear 取消视图消失
我的应用程序使用 NavigationController。在后退按钮按下时,我会检查是否满足某个条件。如果没有,我想警告用户他们所做的工作将不会被保存。
我正在尝试使用该viewWillDisappear
功能来执行逻辑等。
但是,如果用户希望取消导航,我不确定如何停止导航。
ios - iOS - 为什么我的下一个视图回调我以前的视图?
我的情况是下一个:
我有两个视图控制器。第一个包含一个UITableView
. 当我点击一个单元格时,会调用第二个视图并显示另一个UITableView
.
问题:
我的第二个视图立即显示,它被删除,我的应用程序返回第一个视图。
在调试模式下,我可以看到它viewDidLoad()
被调用并且TableView
已经被初始化,因为它已TableView
被填充。
但是不知道为什么,立即调用 viewWillDisappear() ,就好像视图被移除了一样……
有人可以帮我吗?
编辑 :
我的第一个视图:
我的第二个观点:
说实话,这个项目很大,我两个月前就开始做,一个人做。我之前没有在 Objective-C 中工作,甚至更少使用 X-Code。我正在逐渐发现功能和 Objective-C ......
ios - 隐藏 pkhud HUD 在 viewWillDissapear 上不起作用
我在链中有几个 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 时视图控制器也没有从内存中解除分配。
ios - 如何将数据传递给父视图控制器
单击图像时,我正在对我的父 VC 执行 segue。我想将数据从子 VC 传递回父 VC。我一直在探索将数据传递回父 VC 的各种选项,但无法弄清楚。
由于子 VC 是 Navigation 的一部分,并且通过 segue 呈现(显示),因此应该有一种简单的方法将数据传递回父级。
怎么做?
我已经尝试过viewWillDisappear
方法,但 parentVC 在以下代码中为零。
ios - 当前 ViewController 调用 viewWillDisappear 但不调用 viewWillAppear
以下是我的代码存在 Safari 视图控制器
上面的代码调用 viewWillDisappear 但在关闭呈现的视图控制器时不调用 viewWillAppear。
还发现视图被关闭后 viewWillDisappear 根本没有为任何其他 pushViewController 调用
如何解决这个问题?
对此进行更新:
尝试导航控制器并设置其委托并实现以下方法
这也不起作用。
更新此尝试以下代码
但是使用此标签栏不会隐藏,控制器不会全屏显示,并且目前没有隐藏底栏之类的选项。
ios - 在 viewWillDisappear 上显示 SVProgressHUD
上下文:我UIViewController
正在显示一个编辑配置文件视图,其中包含一些UITextField
(名字、姓氏、生日......)。没有“保存按钮”,一旦textFieldDidEndEditing
调用,数据库中的值就会更新。
UIViewController
如果用户尝试在所有数据库更新完成之前离开,我想显示一个加载视图(我正在使用 SVProgressHUD 库) 。
所以这是我的代码(如果 updateWaitingConfirm 为空,则意味着所有更新都已完成):
当所有更新完成时(或超过 maxTimeToWaitForUpdates(10 秒)),group.leave()
调用super.viewWillDisappear()
问题是我的视图中没有任何内容,例如,我还尝试编辑文本字段,但它也不起作用。我也尝试view.layoutIfNeeded()
在 showSVProgressHUD 之后打电话,但它不起作用。
很高兴知道:我不能只在我的后退按钮touchUpInside
方法上调用一个方法,因为用户也可以退出UIViewController
with interactivePopGestureRecognizer
。
谢谢!
ios - 当我们关闭通知设置覆盖时,视图将不会触发
单击按钮时,我有一个视图控制器,我将用户带到应用程序设置。
当我从 appsettings 回到 app 时, viewwillappear 方法不会触发。
或者是否有任何其他方法可以让我们知道 appsettings 已关闭并且用户现在正在查看屏幕。