2010-02-15 51 views
1

在退出應用程序之前是否有任何內置技術直接移動到最後一個UIViewController?當應用程序退出時加載上次查看的UIViewController

我想弄清楚是否有任何內置的UIKit框架/可可觸摸這樣做。如果沒有,我意識到這將是相當微不足道的實施,但我不想這樣做,如果事情已經存在。

例如:

  1. 你開始你的應用程序
  2. 您可以通過3個UIViewControllers移動(一個UINavigationController內)
  3. 您可以通過每一個全屏顯示的項目列表移動,第5項
  4. 您退出

然後重新啓動應用程序,並希望回到你在s,去年視圖第3步 - 查看你的第五個項目。

回答

3

NSUserDefaults將成爲此工作的工具。你可以簡單地保存一鍵表明你對應用程序的位置,然後再讀取此鍵時啓動應用來決定去哪裏:

// whenever you move to a new screen or item: 
[[NSUserDefaults standardUserDefaults] setObject:viewIdentifierString 
              forKey:@"last_view"]; 


// when your application opens: 
NSString * viewIdentifierString = [[NSUserDefaults standardUserDefaults] 
            stringForKey:@"last_view"]; 

if (viewIdentifierString == nil) 
{ 
    // show default view 
} 
else 
{ 
    // use viewIdentifierString to determine which view to load 
} 
+0

這就是我打算這麼做的原因,每個控制器都有一把鑰匙。我希望有一種更懶惰的方式,而不是基於按鍵推送,雖然 – 2010-02-15 11:54:20

+0

我恐怕不會。由於每個應用程序都可以有不同的加載視圖的方式,因此Cocoa有一個深入視圖層次結構的默認方法變得非常困難。 – 2010-02-15 11:57:09

+0

非常感謝。它幫助我很多.. – tesmojones 2012-08-03 06:22:23

1

您可以在最後一次查看的ViewController存儲到NSUserDefaults的例子。 然後在您的應用程序委託中讀出此值並加載指定的視圖控制器。

覆蓋您的viewcontrollers的每個init的NSUserDefaults值或您的應用程序終止時。

相關問題