在我的iPhone应用程序中,我拥有eah项目的唯一标识符。我希望当用户登录时,每个页面都可以访问唯一标识符。
我正在使用NSUserDefaults来做到这一点。但问题是登录不是第一页。因此,如果我访问某个需要唯一ID的页面,那么它会显示“unknownkey”。
我该如何解决这个问题?
此外,我无法将登录屏幕添加为第一个屏幕,因为用户无需登录即可访问某些部分。
答案 0 :(得分:1)
尝试类似
的内容if (![[NSUserDefaults standardUserDefaults] objectForKey: @"uniqueid"]) {
//...user is not logged in..
} else {
//...user is logged in...
}
答案 1 :(得分:0)
我想这是设计问题而不是编程问题?
您可以将登录屏幕移动到启动屏幕,或者将标签栏保持原样,直到用户登录,甚至以不同方式重新设计整个屏幕。
答案 2 :(得分:0)
如果所有内容都需要登录(例如您的应用程序是Dropbox客户端),请在应用程序启动时以模态方式显示登录viewController。 并且在您成功登录之前不要忽略它。
答案 3 :(得分:0)
在RootViewController的viewDidLoad方法中,您需要通过IF语句检查保存的NSUserDefault。容易。
-(void)viewDidLoad {
if(![[NSUserDefaults standardDefaults] objectForKey:@"uniqueid"]) {
// here you'll want to present a view modally inside a new navigation controller.
LoginViewController *lvc = [[LoginViewController alloc] initWithNibName:@"LoginViewController" bundle:nil];
UINavigationController *controller = [[UINavigationController alloc] initWithRootViewController:lvc];
[self.navigationController presentModalViewController:controller animated:YES];
} else {
// this is where you'd set up the client if the user is already logged in.
}
}