我的應用程序包含幾個視圖,我想顯示一個小的設置,當應用程序啓動時,用戶還沒有完成嚮導。 我知道我可以通過NSUserDefaults實現這一點,但我不確定如何根據NSUserDefaults存儲的輸入字符串來顯示特定的視圖。NSUserDefaults記住視圖
我AppDelegate.m:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
NSString *controllerName = [[NSUserDefaults standardUserDefaults] objectForKey:@"WIZARD_VIEW"];
if ([controllerName length]) {
Class controllerClass = NSClassFromString(controllerName);
UIViewController *controller = [[controllerClass alloc] init];
// Override point for customization after application launch.
return YES;
}
然後在視圖 - 控制文件中添加以下代碼建議從jfaller:
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
NSUserDefaults* standard=[NSUserDefaults standardUserDefaults];
[standard registerDefaults: @{ @"WIZARD_VIEW" : [[self class]description]} ]; [[NSUserDefaults standardUserDefaults] synchronize];
}
- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
NSUserDefaults* standard=[NSUserDefaults standardUserDefaults];
[standard registerDefaults: @{ @"WIZARD_VIEW" : [[self class]description]} ];
[[NSUserDefaults standardUserDefaults] synchronize];
}
但我怎麼能做出這種因此它會顯示特定已在設置中選擇的視圖?
您不想調用註冊表erDefaults:這裏。通常每個應用程序啓動只調用一次registerDefaults。你確實想調用setObject:forKey :. – jfaller