我對iphone應用程序開發相當陌生。我正在創建一個具有多個視圖的應用程序。最初它從一個認證視圖開始,然後根據用戶交互加載視圖。當我構建並運行應用程序時 - 第一次顯示「Default.png」屏幕,然後顯示我進行身份驗證過程(輸入用戶標識,密碼並執行Web服務)的第一個視圖,然後顯示憑證後驗證它將我帶到下一個視圖。當我在模擬器的這個狀態下關閉應用程序並重新打開它時,我看到了與關閉應用程序相同的狀態。但這是我想要的。當我重新啓動應用程序時,我應該能夠顯示「DEfault.png」和屏幕,然後顯示我的初始身份驗證視圖。你能幫我解決這個問題嗎?謝謝如何在每次啓動應用程序時加載初始視圖?
回答
這是因爲iOS 4應用程序應該支持多任務處理。您可以更改應用程序,使其不發生變化:在Info.plist中,將UIApplicationExitsOnSuspend設置爲true(即<key> UIApplicationExitsOnSuspend</key><true/>
) - 確保它是一個布爾值而不是字符串。請注意,這可能會使啓動速度變慢,因爲應用程序必須重新啓動。
另一種方式是處理applicationDidEnterBackground:
在您的應用程序委託,做兩件事情:
- 重置您的視圖層次(你可以做到這一點在下次啓動時,做起來早些時候可能有助於釋放更多的內存)
- 秀「爲Default.png」在全屏視圖 - iOS設備需要您的應用程序的截圖它隱藏它使用動畫應用回來後
這聽起來像你想的問題。要解決的是你的認證會話可能在應用程序暫停時超時,您需要重新登錄。 儘管提出的解決方案(將UIApplicationExistsOnSuspend設置爲true)會起作用,但我認爲您應該考慮採用不同的方法。
Apple建議您盡一切可能使其看起來像手機支持多任務處理。這就是爲什麼,默認情況下,您的應用將暫停並恢復,而不是退出並重新啓動。但就你而言,你可能需要重新登錄才能恢復會話。我爲您提供了幾個備用解決方案:
- 緩存憑據(即用戶名和密碼)並在需要時靜默使用它們恢復會話。如果後端支持這一點。
- 檢測會話何時變爲陳舊並引入視圖以通知用戶會話已過期並要求他們再次登錄。如果用戶保持應用程序活動超過會話超時,這也將解決問題。
這兩種方法都應該提高感知應用程序的性能,並更好地整合到Apple可用性指南中。
@Jeremy:假設我在應用程序進入後臺之前緩存我的詳細信息。假設我在導航控制器的(x + 5)視圖中。現在,當我重新打開應用程序時,無論應用程序進入後臺,我都希望顯示「Default.png」,然後顯示導航控制器的(x + 1)視圖。基本上我問如何重新排列視圖,並在需要前後刪除一些視圖。我知道這可能是一個愚蠢的問題..但對此我很新鮮和遺憾。您的幫助將不勝感激....謝謝 – samdeV 2010-07-19 17:19:01
我的解釋是,傑里米問*爲什麼*你想讓用戶界面按照你的方式行事。如果您在使用應用程序時收到電話,則必須從頭開始,這是一種糟糕的用戶體驗。儘管可能存在有效的市場營銷原因(例如,您想要顯示啓動屏幕),但這不會使其成爲一個好用戶界面。 – 2010-07-19 17:23:07
基本上用於認證超時。這種方法好嗎? - >當應用程序進入後臺時:運行一個計時器15分鐘,如果過期然後殺死該應用程序。有一個更好的方法嗎 ? – samdeV 2010-07-19 17:33:19
- 1. 每次應用程序啓動時顯示初始視圖
- 2. 如何在應用程序啓動時預加載Prism視圖?
- 3. 僅加載應用程序啓動時的初始視圖和數據
- 4. 如何在每次應用程序恢復時啓動第一個視圖?
- 5. 每次啓動時更改應用程序的啓動圖像
- 6. 每次啓動應用程序時開始活動
- 7. 如何測量加載時間RCP應用程序中的初始透視圖?
- 8. 使用Spring Data MongoDB在應用程序啓動時加載初始數據
- 9. 第一次啓動應用程序後更改初始視圖控制器
- 10. 如何在每次打開應用程序時重新啓動應用程序?
- 11. Asp.Net應用程序在初始加載時緩慢加載
- 12. 當應用程序啓動時加載視圖
- 13. 如何在應用程序再次變爲活動狀態時加載視圖
- 14. 在第一次應用程序啓動時加載.nib
- 15. 如何在啓動時初始加載plone站點時訂閱
- 16. 每次從相同視圖加載應用程序
- 17. 畢加索在第一次應用程序啓動時未加載圖像
- 18. 每次啓動Android應用程序時顯示啓動畫面
- 19. 數據加載 - 在桌面視圖上啓動應用程序
- 20. iOS加載視圖在應用程序啓動
- 21. 每次啓動應用程序時數據庫大小增加
- 22. 如何加載應用程序啓動時其他選項卡的視圖?
- 23. 如何避免「Root WebApplicationContext:初始化已啓動」加載兩次?
- 24. 每次啓動新應用程序
- 25. ipad每次啓動sencha touch 2 web應用程序從主屏幕應用程序從開始重新加載
- 26. 在應用程序啓動/初始化之前在flex中加載xml文件
- 27. 在應用程序池啓動時初始化ASP.NET Web應用程序
- 28. 如何讓應用程序僅在從頭開始啓動時才加載Default.png?
- 29. 如何在應用程序啓動時初始化已添加的應用程序小部件?
- 30. 初始屏幕僅在第一次啓動應用程序時打開
@tc:非常感謝你......這對我有很大的幫助......我編輯了info.plist並且工作正常。我將使用方法2,以防將來的應用程序添加更多功能時,我的加載時間變得更長。 – samdeV 2010-07-19 17:05:20