2013-04-18 3 views
1

Я пытаюсь создать приложение, которое перенаправляется на домашнюю страницу после успешного входа в систему. У меня есть два контроллера вида: LoginViewController и DashboardViewController. Я закодировал часть входа, и я создал представление для панели управления. Но я не уверен, как перенаправить на DashboardViewController после успешного входа в систему. Я бы очень признателен за помощь.Как перенаправить на новый просмотр после успешного входа в XCode?

Вот код, у меня есть для LoginViewController.m файла:

#import "LoginViewController.h" 

@implementation LoginViewController 

@synthesize userName,password,loginbutton,indicator; 

- (void)didReceiveMemoryWarning { 
    // Releases the view if it doesn't have a superview. 
    [super didReceiveMemoryWarning]; 

    // Release any cached data, images, etc that aren't in use. 
} 

- (void)viewDidUnload { 
    // Release any retained subviews of the main view. 
    // e.g. self.myOutlet = nil; 
} 


- (void)dealloc { 
    [super dealloc]; 
} 


- (IBAction) loginButton: (id) sender 
{ 
    // TODO: spawn a login thread 

    indicator.hidden = FALSE; 
    [indicator startAnimating]; 
    NSString *post =[NSString stringWithFormat:@"username=%@&password=%@",userName.text, password.text]; 

    NSString *hostStr = @"******"; 
    hostStr = [hostStr stringByAppendingString:post]; 
    NSData *dataURL = [NSData dataWithContentsOfURL: [ NSURL URLWithString: hostStr ]]; 
    NSString *serverOutput = [[NSString alloc] initWithData:dataURL encoding: NSASCIIStringEncoding]; 
    //NSLog(@"Result = '%@'", serverOutput); // look for space between quotes 
    serverOutput = [serverOutput stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]; 



    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]; 


     } 
    else { 
     UIAlertView *alertsuccess = [[UIAlertView alloc] initWithTitle:@"Error" message:@"Username or Password Incorrect" 
      delegate:self cancelButtonTitle:@"OK"otherButtonTitles:nil, nil]; 
     [alertsuccess show]; 
     [alertsuccess release]; 
     loginbutton.enabled = TRUE; 

    } 


    loginbutton.enabled = FALSE; 
} 

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { 
    [self.userName resignFirstResponder]; 
    [self.password resignFirstResponder]; 

} 

@end

+0

В методе делегата кода записи alertView в толкая 'DashboardViewController' –

ответ

3

Сначала добавьте #import "DashboardViewController.h" файл в loginViewContrller.m файл

и создать объект DashboardViewController в

if([serverOutput isEqualToString:@"Yes"]) 
{ 
     DashboardViewController *newView = [[DashboardViewController alloc] init]; 
     [self presentModalViewController:newView animated:YES]; 

     UIAlertView *alertsuccess = [[UIAlertView alloc] initWithTitle:@"Congrats" message:@"You are authorized" 
      delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil]; 

     [alertsuccess show]; 
     [alertsuccess release]; 

} 
+0

Спасибо, что работает! :) Я новичок в создании приложений и все еще пытаюсь разобраться в вещах. – spatra

+0

@ всплеск-я рад помочь вам :) – 2013-04-18 04:07:47

+0

-My Dashboard работает сейчас. Я добавил к нему кнопку, чтобы перенаправить на другой вид: ProfileViewController, но каждый раз получаю следующую ошибку: «Завершение приложения из-за неотображенного исключения» NSUnknownKeyException », причина:« [ setValue: forUndefinedKey:]: этот класс не является ключевым значением, совместимым с кодированием для ключевого класса. »« Не могли бы вы помочь мне в этом? – spatra

1

1) Установите tag в alert как alertsuccess.tag = 1;

2) Используйте следующий код для отображения следующего ViewController

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex 
{ 
    if (alertView.tag == 1 && buttonIndex == 0) 
    { 
     DashboardViewController *vcDashboard = [[DashboardViewController alloc] init]; 
     if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 6.0) 
     { 
      [self presentViewController:vcDashboard animated:YES completion:nil]; 
     } 
     else 
     { 
      [self presentModalViewController:vcDashboard animated:YES]; 
     } 
     [vcDashboard release]; 
    } 
} 
Смежные вопросы