2010-07-19 85 views
1

我對iphone應用程序開發相當陌生。我正在創建一個具有多個視圖的應用程序。最初它從一個認證視圖開始,然後根據用戶交互加載視圖。當我構建並運行應用程序時 - 第一次顯示「Default.png」屏幕,然後顯示我進行身份驗證過程(輸入用戶標識,密碼並執行Web服務)的第一個視圖,然後顯示憑證後驗證它將我帶到下一個視圖。當我在模擬器的這個狀態下關閉應用程序並重新打開它時,我看到了與關閉應用程序相同的狀態。但這是我想要的。當我重新啓動應用程序時,我應該能夠顯示「DEfault.png」和屏幕,然後顯示我的初始身份驗證視圖。你能幫我解決這個問題嗎?謝謝如何在每次啓動應用程序時加載初始視圖?

回答

0

這是因爲iOS 4應用程序應該支持多任務處理。您可以更改應用程序,使其不發生變化:在Info.plist中,將UIApplicationExitsOnSuspend設置爲true(即<key> UIApplicationExitsOnSuspend</key><true/>) - 確保它是一個布爾值而不是字符串。請注意,這可能會使啓動速度變慢,因爲應用程序必須重新啓動。

另一種方式是處理applicationDidEnterBackground:在您的應用程序委託,做兩件事情:

  • 重置您的視圖層次(你可以做到這一點在下次啓動時,做起來早些時候可能有助於釋放更多的內存)
  • 秀「爲Default.png」在全屏視圖 - iOS設備需要您的應用程序的截圖它隱藏它使用動畫應用回來後
+0

@tc:非常感謝你......這對我有很大的幫助......我編輯了info.plist並且工作正常。我將使用方法2,以防將來的應用程序添加更多功能時,我的加載時間變得更長。 – samdeV 2010-07-19 17:05:20

1

這聽起來像你想的問題。要解決的是你的認證會話可能在應用程序暫停時超時,您需要重新登錄。 儘管提出的解決方案(將UIApplicationExistsOnSuspend設置爲true)會起作用,但我認爲您應該考慮採用不同的方法。

Apple建議您盡一切可能使其看起來像手機支持多任務處理。這就是爲什麼,默認情況下,您的應用將暫停並恢復,而不是退出並重新啓動。但就你而言,你可能需要重新登錄才能恢復會話。我爲您提供了幾個備用解決方案:

  1. 緩存憑據(即用戶名和密碼)並在需要時靜默使用它們恢復會話。如果後端支持這一點。
  2. 檢測會話何時變爲陳舊並引入視圖以通知用戶會話已過期並要求他們再次登錄。如果用戶保持應用程序活動超過會話超時,這也將解決問題。

這兩種方法都應該提高感知應用程序的性能,並更好地整合到Apple可用性指南中。

+0

@Jeremy:假設我在應用程序進入後臺之前緩存我的詳細信息。假設我在導航控制器的(x + 5)視圖中。現在,當我重新打開應用程序時,無論應用程序進入後臺,我都希望顯示「Default.png」,然後顯示導航控制器的(x + 1)視圖。基本上我問如何重新排列視圖,並在需要前後刪除一些視圖。我知道這可能是一個愚蠢的問題..但對此我很新鮮和遺憾。您的幫助將不勝感激....謝謝 – samdeV 2010-07-19 17:19:01

+0

我的解釋是,傑里米問*爲什麼*你想讓用戶界面按照你的方式行事。如果您在使用應用程序時收到電話,則必須從頭開始,這是一種糟糕的用戶體驗。儘管可能存在有效的市場營銷原因(例如,您想要顯示啓動屏幕),但這不會使其成爲一個好用戶界面。 – 2010-07-19 17:23:07

+0

基本上用於認證超時。這種方法好嗎? - >當應用程序進入後臺時:運行一個計時器15分鐘,如果過期然後殺死該應用程序。有一個更好的方法嗎 ? – samdeV 2010-07-19 17:33:19

相關問題