使用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中的背景中重新喚醒視圖時的數據?