2013-03-03 4 views
0

Я новичок и стараюсь выяснить простую задачу.iOS простая аутентификация

У меня есть два контроллера вида.

Первый - это экран входа в систему.

У этого есть два поля и кнопка входа.

Если пользователь вводит имя пользователя и пароль правильно, я просто хочу направить их на следующий вид.

Прямо сейчас, если я нажму кнопку входа в систему, он просто перейдет ко второму экрану.

Мне было интересно, как я могу аутентифицировать имя пользователя и пароль (которые могут быть жестко запрограммированы), и если это не правильно, то не переходите к следующему экрану. Если это правильно, перейдите к следующему экрану.

Я знаю, что это просто, но я почему-то не могу найти что-либо.

Заголовочный файл #import

@interface ViewController : UIViewController 

@property (weak, nonatomic) IBOutlet UITextField *userNameField; 
@property (weak, nonatomic) IBOutlet UITextField *passwordField; 
- (IBAction)LoginButton:(id)sender; 
- (IBAction)backgroundClick:(id)sender; 

@end 

основной файл

#import "ViewController.h" 

@interface ViewController() 

@end 

@implementation ViewController 

@synthesize userNameField, passwordField; 
- (void)viewDidLoad 
{ 

    [super viewDidLoad]; 

    // Do any additional setup after loading the view, typically from a nib. 
} 

- (void)didReceiveMemoryWarning 
{ 
    [super didReceiveMemoryWarning]; 


    // Dispose of any resources that can be recreated. 
} 




- (IBAction)LoginButton:(id)sender { 
} 

- (IBAction)backgroundClick:(id)sender { 
    [userNameField resignFirstResponder]; 
    [passwordField resignFirstResponder]; 
} 
@end 

ответ

2

, если вы хотите, чтобы проверить имя пользователя & пароль, то вы должны проверить, как это в вашем методе

- (IBAction)LoginButton:(id)sender { 

    if([userNameField.text isEqualToString:@"username"] && [passwordField.text isEqualToString:@"pwd"]){ 

    NewViewController *newViewController=[[NewViewController alloc]initWithNibName:@"NewViewController" bundle:nil]; 
     [self presentViewController:newViewController animated:YES completion:nil]; 

    } 
    else { 

     NSLog(@"username or password is correct"); 

    } 

} 
+0

Может быть, я делаю что-то неправильно, но это все еще только идет прямо к следующему контроллеру представления, даже когда я ставлю ничего в этих двух областях. – Claud

+0

вы также должны проверить на пустой также – nsgulliver

+0

например 'if ([userNameField.text length]> 0 || userNameField.text! = Nil)' – nsgulliver

1

В вашем методе

- (IBAction)LoginButton:(id)sender { 
} 

, вам нужно реализовать что-то вроде этого:

if([userNameField.text isEqualToString:@"userName"] && [passwordField.text isEqualToString:@"password"]){ 
    NSLog)@"successful login"); 
    //then load your new view 
    YourViewController *yourVC=[[YourViewController alloc] initWithNibName:@"yourVC" bundle:[NSBundle mainBundle]]; 
    [self presentViewController:yourViewController animated:YES completion:nil]; 
} 
else{ 
    NSLog(@"Invalid UserName Password"); 
    UIAlertView *alertView=[[UIAlertView alloc]initWithTitle:@"Login Failed"  
          message:@"Invalid user name and/or password" 
          delegate:self 
       cancelButtonTitle:@"OK" 
       otherButtonTitles:nil, nil]; 
    [alertView show]; 
} 
Смежные вопросы