2010-02-15 31 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值或您的应用程序终止时。

相关问题