现在我有一个应用程序,用户在打开应用程序时看到的第一个屏幕是登录视图。
但我只希望用户看到该视图,如果这是他们第一次尝试登录。
因此,如果某个nsuserdefault字段为空,我希望显示一个视图,如果不是,则显示Login View。
我该怎么做?
我试图在loginview.m的viewdidload中插入一个if子句,但显然不可能从viewdidload自动切换到另一个视图?
答案 0 :(得分:0)
您应该在App的委托中实现此功能。这应该在方法中完成:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
检查用户默认值中保存的值并激活适当的控制器。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
// Check user defaults here
BOOL shouldShowLogin = [[NSUserDefaults standardUserDefaults] boolForKey:@"ShowLogin"];
MasterViewController *masterViewController = [[[MasterViewController alloc] initWithNibName:@"MasterViewController" bundle:nil] autorelease];
self.navigationController = [[[UINavigationController alloc] initWithRootViewController:masterViewController] autorelease];
if (shouldShowLogin) {
LoginViewController *loginViewController = [[[LoginViewController alloc] initWithNibName:@"LoginViewController" bundle:nil] autorelease];
[self.navigationController pushViewController:loginViewController animated:NO];
}
self.window.rootViewController = self.navigationController;
[self.window makeKeyAndVisible];
return YES; }
以上示例应该向您展示这个想法。它使用导航控制器,但可以在没有导航控制器的情况下完成相同的操作 - 通过模态提供登录控制器。