- objective-c - iOS 5 : Can you override UIAppearance customisations in specific classes?
- iphone - 如何将 CGFontRef 转换为 UIFont?
- ios - 以编程方式关闭标记的信息窗口 google maps iOS
- ios - Xcode 5 - 尝试验证存档时出现 "No application records were found"
我想知道 viewWillDisappear:
和 viewDidDisappear:
是否在 iOS 切换应用程序时被调用(例如,用户按下主页按钮)。这会导致 View 从屏幕上消失,但是是否为此调用了回调?
最佳答案
你可以。
我之前使用过的解决方案是在您的应用委托(delegate)中使用 applicationDidEnterBackground:
和 applicationWillEnterForeground:
。
在您的应用委托(delegate)中执行此操作。
- (void)applicationDidEnterBackground:(UIApplication *)application {
[self.window.rootViewController beginAppearanceTransition:NO animated:NO];
[self.window.rootViewController endAppearanceTransition];
}
- (void)applicationWillEnterForeground:(UIApplication *)application {
[self.window.rootViewController beginAppearanceTransition:YES animated:NO];
[self.window.rootViewController endAppearanceTransition];
}
现在你的 viewWillDisappear:
、viewDidDisappear:
、viewWillAppear:
和 viewDidAppear:
View Controller 层次结构的方法当您的应用程序进入后台并返回前台时将被调用。
希望这有用吗?
编辑 24/11/16(Swift 3 版本)
func applicationDidEnterBackground(_ application: UIApplication) {
window?.rootViewController?.beginAppearanceTransition(false, animated: false)
window?.rootViewController?.endAppearanceTransition()
}
func applicationWillEnterForeground(_ application: UIApplication) {
window?.rootViewController?.beginAppearanceTransition(true, animated: false)
window?.rootViewController?.endAppearanceTransition()
}
编辑 2/1/2017(所有窗口)
func applicationDidEnterBackground(_ application: UIApplication) {
for window in application.windows {
window.rootViewController?.beginAppearanceTransition(false, animated: false)
window.rootViewController?.endAppearanceTransition()
}
}
func applicationWillEnterForeground(_ application: UIApplication) {
for window in application.windows {
window.rootViewController?.beginAppearanceTransition(true, animated: false)
window.rootViewController?.endAppearanceTransition()
}
}
关于ios - 切换应用程序时会调用 viewWillDisappear/viewDidDisappear 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18728584/
我在我的应用程序中使用导航 Controller 。我尝试单击一个按钮(不在导航栏中)的一个 UI viewWillDisappear 未被调用。但我没有使用 navigationController
我在选项卡 View 中有一个表单;我将任何字段的表单标记为已更改,如果表单是脏的(代替“保存”按钮),我想弹出一个带有“保存”/“取消”的 ActionSheet。在用户响应正在处理的 Action
我制作了一个播放器应用。当用户关闭应用程序(进入后台模式)并调用 viewWillDisappear 时,播放器停止播放音频。 我无法在 applicationDidEnterBackground 中
我有一个带有文本字段的 UITableviewController。文本字段包含必填字段。 如果用户没有输入所有字段就离开了屏幕,我想用 alertview 提醒用户。我在 viewwilldisap
我有一个 UIViewController,ViewControllerA,它显示为来自 RootViewController 类的模态视图 Controller 。 ViewControllerA
我的应用程序使用带有 splitviewcontroller 的 Storyboard。在左侧,我有带有选项列表的表格 View 。在右侧,我有一些关于左侧选项的信息。就像在设置应用程序中一样。当用户
我有一个带有两个简单屏幕的应用程序。第一个屏幕始终打开第二个屏幕的相同实例。第二个屏幕有一个文本字段和一个用于手动隐藏键盘的按钮。 viewWillDisappear 上的 resignFirstRe
我有一个 iOS 应用程序,它使用远程服务器上托管的数据库。 在 ViewWillDisappear 函数内执行数据库 INSERT 是否可能或只是不好的做法? 我似乎找不到太多有关 Apple 在该
我想在用户点击后退按钮返回到我的 Root View Controller 时执行动画。动画将简单地突出显示用户在详细 View Controller 中所做的更改。 我试过了。动画本身可以工作(对于
我是 Swift 的新手,我在我的应用程序中发现了一些奇怪的崩溃。 Fabric 报告说崩溃发生在 viewWillDisappear() 中。 我有两个 ViewControllers。用户在 A
在 viewWillDisappear 上,我需要更新很多 Core Data 记录,这样做会在我从一个 viewController 移动到另一个(通过 Tab View Controller)时造
所以我的应用程序中有一个 UINavController 并且我试图在用户按下后退按钮时执行一个方法。我到处搜索,只能找到断章取义的零碎内容。 有没有一种方法可以实现某种检查,在用户按下后退按钮关闭当
我需要检查 viewWillDisappear: 是否被调用,因为我将另一个 UIViewController 呈现为模态。有谁知道这是否可能? 更新 我想知道为什么要调用它。例如,如果它被弹出或者另
我有以下场景: 在 vcA 中(当用户点击 UI 中的按钮时): 使用 NIB 文件实例化 vcB -(当用户点击 UI 中的按钮时) 在 vcB 中初始化一个 iVar 使用 presentModa
是否有 viewWillDisappear 等同于 CCScenes ? 就像 onExit 等价于 viewDidDisappear 或 onEnter 等价于 viewDidAppear . 最佳
当我正在搜索然后切换 UItab 时,不会调用 ViewWillDisappear。知道为什么当我过滤结果显示和切换选项卡时 ViewWillDisappear 没有被调用吗? func update
这是之前 Unresolved 帖子的后续内容。我在 TableView 中有一个导航 Controller 、一个 TableView Controller 和一个搜索栏。所有这些都内置在 Stor
这是日志输出 2013-03-16 14:02:59.301 Echo[65406:4503] child viewWillDisappear start 2013-03-16 14:02:59.30
我有一个简单的导航层次结构: Controller 1 > Controller 2 > Controller 3 每个 Controller 都包含对其子级和父级的引用(@property(非原子,
我有一个包含 UIWebView 的 View ,它正在加载谷歌地图(所以有很多 JavaScript 等)。我遇到的问题是,如果用户在 Web View 完成加载之前点击导航栏上的“后退”按钮,我不
我是一名优秀的程序员,十分优秀!