使用iPhone SDK 4.1。有时,当从iPhone 3GS设备的背景状态返回时,返回的视图丢失了其图像或标签之一。当从后台返回时,viewDidAppear
方法 不会被调用。有没有办法强制 重新加载视图,以便这些方法被调用?从背景返回时重新加载视图
1
A
回答
3
如果您的应用程序因尝试在RAM(在本例中为图像)中存储太多数据而收到内存警告,通常会发生这种情况。
要测试是否出现这种情况,您可以在didReceiveMemoryWarning消息中执行NSLog调用,也可以继承UIImage并扩展其dealloc,并在其中放入一条NSLog消息,例如“正在处理图像”,然后检查被写入控制台。如果你想检查它而不在调试器(也就是没有控制台),你可以在mainwindow xib中的最前面创建一个调试UILabel(所以它总是可见的),它的文本值被设置而不是写入NSLog。通过这种方式,即使返回到程序后,也能看到发生了什么。
最好的办法是将didReceiveMemoryWarning和UILabel对象一起使用。
- (void)applicationDidReceiveMemoryWarning:(UIApplication *)application
{
[email protected]"Did receive memory warning";
}
为了解决这个问题(即重新加载图像),你可以注册一个观点,从通知中心收到 的UIApplicationWillEnterForegroundNotification,然后调用必要再装电话,即检查该图像是零(已发布)并应该重新加载。
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(viewNeedsReload) name:UIApplicationWillEnterForegroundNotification object:nil];
- (void) viewNeedsReload
{
//Check validity of each image here and reload if necessary
}
相关问题
- 1. iPhone:从前景/背景切换回来后重新加载视图?
- 2. 从控制器返回部分视图时重新加载jQuery?
- 3. 固定背景图像,加载新视图时不会移动
- 4. 从背景加载图片
- 5. 当从Utility应用程序的FlipSideView返回时强制重新加载视图
- 6. 当调用一个方法来重新加载视图从背景
- 7. 重新加载视图
- 8. 重新加载Eclipse视图
- 9. 重新加载视图iPhone
- 10. 重新加载集合视图返回到先前的视图控制器
- 11. 从其他视图回来后从表视图重新加载数据
- 12. 如何确定从iOS中的背景返回到前台时加载哪个视图?
- 13. iPhone NSMutableArray从url加载背景图像
- 14. 在flash加载时的背景图片
- 15. 有时仅加载背景图片
- 16. 用户刷新页面时加载不同的视频背景
- 17. pyqtgraph - 仅在重新加载后才加载背景颜色
- 18. 背景图片未加载
- 19. 自定义UITableViewCell的背景,何时重新加载等
- 20. 从另一个视图返回后再次加载表视图
- 21. 防止延迟加载背景图像时的双重请求
- 22. 从didReceiveLocalNotification加载新视图
- 23. 两个文本视图从前景切换到背景并返回
- 24. 重新加载UITableView数据而不重新加载视图?
- 25. 重新加载noOfRowsInSection当表视图重新加载,xcode
- 26. 刷新时加载不同的背景图片[使用PHP]
- 27. MVC从部分视图重新加载父视图
- 28. 加载firebase数据时重新加载视图控制器swift
- 29. WPF MVVM:视图模型更改时不重新加载视图
- 30. 如何从iOS4中的背景中重新唤醒视图时的数据?