0
我有一个Tabbar/Tableview应用程序,当应用程序加载时模式加载登录/注册视图,我已经在设置包中设置了Root.plist名称和密码并成功检索了这些项目。我想能够做两件事:在NSUserDefaults中验证名称和密码的存在以跳过登录/屏幕
1)做一个测试,看看NSUserDefault字符串是否为空,如果是的话加载登录/注册视图。
2)如果字符串可用,则使用字符串内容登录到我的Web服务。
在此先感谢。
这里是我的LoginViewController .M:
@synthesize usernameField;
@synthesize passwordField;
@synthesize loginButton;
@synthesize loginIndicator;
@synthesize usernameLabel;
@synthesize passwordLabel;
-(void)refreshFields {
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
usernameLabel.text = [defaults objectForKey:kUsernameKey];
passwordLabel.text = [defaults objectForKey:kPasswordKey];
}
- (void)viewDidAppear:(BOOL)animated {
[self refreshFields];
[super viewDidAppear:animated];
}
- (void)viewDidLoad {
[super viewDidLoad];
[self refreshFields];
[self.navigationController setNavigationBarHidden:YES animated:NO];
}
- (IBAction) login: (id) sender
{
{
NSString *post =[NSString stringWithFormat:@"username=%@&password=%@",usernameField.text, passwordField.text];
NSString *hostStr = @"http:~iphone_login.php?";
hostStr = [hostStr stringByAppendingString:post];
NSData *dataURL = [NSData dataWithContentsOfURL: [ NSURL URLWithString: hostStr ]];
NSString *serverOutput = [[NSString alloc] initWithData:dataURL encoding: NSASCIIStringEncoding];
NSLog(@"Site: %@",hostStr);
NSLog(@"Site: %@",serverOutput);
if([serverOutput isEqualToString:@"Yes"]){
UIAlertView *alertsuccess = [[UIAlertView alloc] initWithTitle:@"Congrats" message:@"You are authorized "
delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
[alertsuccess show];
[alertsuccess release];
该测试的工作原理,但我不确定有关命令,[self loadLoginView]加载我的LoginView.xib?我正在寻找它继续加载视图。 [self login]是否运行 - (IBAction)登录名:(id sender?)我得到错误说明“ViewController可能不会对这两个命令作出响应”。 – 2010-06-04 18:59:11
应该是[self login:nil], [self loadLoginView]只是你自己函数的虚拟占位符,它应该加载你的LoginView.xib文件,通常它带有LoginView.m和LoginView.h文件,所以仅仅加载xib文件是不够的。 – JOM 2010-06-07 04:10:42
谢谢,所有这些都在我的LoginView.m类中,LoginView控制器是从AppDelegate.m文件以模态方式启动的。你知道我应该去哪里吗? – 2010-06-07 20:54:01