我有一個很大的屏幕應用程序,所有的排列在一個層次結構中,頂部有一個UITabBarController,下面是UINavigationControllers,然後是下面的UIView控制器,也許有一個模式控制器在某個地方引發了很好的測量。如何讓我的iPhone應用程序以特定屏幕顯示?
允許用戶從列表中選擇一個開始屏幕。一旦選擇,下次啓動應用程序將從指定的屏幕開始,所有的導航將工作,就像他們自己在那裏導航一樣。
由於我無法繼承UITabBarController和UINavigationController,因此我無法添加任何ivars來設置任何初始導航信息。
那麼,在這些條件下顯示正確的視圖控制器的屏幕,並且快速執行操作的最佳方式是什麼?
一個有趣的建議,但我認爲會有問題。我不需要或希望我的整個層次結構保存和恢復,只需要控制器的狀態。如果我這樣做,它會保存的意見呢? – 2009-10-25 00:43:42
通過實施NSCoder,您負責編寫您需要的內容,並重新初始化您需要的內容。這是一種節省應用程序狀態的快速方法,而不是視圖本身。它爲您提供了一種安全可靠地重新加載視圖控制器等的方法......無需對NSUserDefaults進行100次調用。 – coneybeare 2009-10-25 04:49:53
coney的一個問題 - 我按照我在答案中列出的方式進行操作的部分原因是因爲我可以在用戶前進時保存應用程序的狀態(爲導航控制器設置委託,實現navigationController:willShowViewController:動畫或didShow)。用你的方法,在applicationWillTerminate中是否有任何危險不會被調用或不會完成? – bpapa 2009-10-25 14:04:47