【发布时间】:2018-11-13 14:52:24
【问题描述】:
在阅读问题之前,请先查看this video,以便您了解应用程序中的问题/问题。
我想做的是,
案例 1:如果用户没有登录应用程序,打开应用程序登录视图后,会打开应用程序登录视图,输入用户名和密码后,它会导航到主页。
案例 2:如果用户已经登录,则启动应用程序后,它将返回主页。
我写了代码来存档这个,
在登录页面中,登录按钮的代码
- (IBAction)loginButton:(id)sender {
[self->userdefaults setBool:YES forKey:@"loginSuccess"];
[userdefaults synchronize];
HomeViewController *home=[self.storyboard instantiateViewControllerWithIdentifier:@"homeId"];
[self.navigationController pushViewController:home animated:YES];
}
我在NSUserDefaults 中存储一个值,重新启动或打开应用程序后,在AppDelegate 类中,我正在检查NSUserDefaults 具有该值的条件,如果是,那么它将显示直接主页,否则它将登录页面。
查看下面AppDelegate类编写的代码,
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
userdefaults=[NSUserDefaults standardUserDefaults];
mainStoryboard = [UIStoryboard storyboardWithName:@"Main" bundle: nil];
if ([[NSUserDefaults standardUserDefaults] boolForKey:@"loginSuccess"]) {
NSLog(@"Login Done!!!");
HomeViewController *homeVC=[mainStoryboard instantiateViewControllerWithIdentifier:@"homeId"];
SampleNavigationController *navigation = [[SampleNavigationController alloc] initWithRootViewController:homeVC];
// SWRevealViewController * vc= [[SWRevealViewController alloc]init];
// ExpandableTableViewController *sidemenu = (ExpandableTableViewController*)[mainStoryboard instantiateViewControllerWithIdentifier:@"sideMenu"];
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self.window.rootViewController = navigation;
[self.window makeKeyAndVisible];
}else
{
LoginViewController *loginVC=[mainStoryboard instantiateViewControllerWithIdentifier:@"LoginId"];
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self.window.rootViewController = loginVC;
[self.window makeKeyAndVisible];
}
return YES;
}
在首页,点击左侧导航按钮后侧边菜单视图没有打开/显示。
AppDelegate 类中缺少什么代码?
【问题讨论】:
-
来自 Apple 的文档...
synchronize()"...这种方法是不必要的,不应该使用。" developer.apple.com/documentation/foundation/userdefaults/…
标签: ios objective-c sidebar appdelegate side-menu