0
#import "LoginVC.h" 
#import "HOMEVC.h" 
#import "DashboardVC.h" 
@interface LoginVC() 

@end 

@implementation LoginVC 
UIActivityIndicatorView *spinner ; 
-(IBAction)login:(id)sender{ 

    NSString *userUpdate =[NSString stringWithFormat:@"%@",[Usernamefileld text]]; 
    NSString *userUpdate1 =[NSString stringWithFormat:@"%@",[PasswordField text]]; 
    NSString *baseURL = [NSString stringWithFormat:@"http://192.168.1.200:8094/YazakiService.svc/LOGIN/%@/%@",userUpdate,userUpdate1]; 
    NSURL *url = [NSURL URLWithString:[baseURL stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]; 
    NSURLRequest *request = [NSURLRequest requestWithURL:url]; 
    NSURLResponse *response; 
    NSError *error; 
    NSData *responseData =[NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error]; 
    NSMutableArray *serviceResponse=[NSJSONSerialization JSONObjectWithData:responseData options:NSJSONReadingMutableContainers error:&error]; 
    NSLog(@"got response==%@", serviceResponse); 
    NSDictionary *template=[serviceResponse objectAtIndex:0]; 

    NSString *test=[template objectForKey:@"ValidState"]; 
    // NSString *test1=[template objectForKey:@"Userid"]; 
    NSString *helloString = @"1"; 
    // // 
    // NSString *helloString1 [email protected]"LFY430"; 
    if ([test isEqual:helloString]) { 
     [NSThread detachNewThreadSelector:@selector(threadStartAnimating:) toTarget:self withObject:nil]; 
     [self moveToView]; 

     //  UIAlertView *alert=[[UIAlertView alloc]initWithTitle:@"Login Successfully" message:@"Correct Uername/Password" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil]; 

    } 
    else{ 

     UIAlertView *alert2=[[UIAlertView alloc]initWithTitle:@"Login Failed" message:@"Incorrect Uername/Password" delegate:self cancelButtonTitle:@"Dismiss" otherButtonTitles:nil]; 

     [alert2 show]; 
     [self alertView1:alert2 didDismissWithButtonIndex:alert2]; 

    } 

} 

- (void)viewDidLoad { 

    [super viewDidLoad]; 
    UIActivityIndicatorView *spinner = [[UIActivityIndicatorView alloc] initWithFrame:CGRectMake(150, 225, 20, 30)]; 
    [spinner setActivityIndicatorViewStyle:UIActivityIndicatorViewStyleGray]; 
    spinner.color = [UIColor blackColor]; 
    [self.view addSubview:spinner]; 
} 

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

-(void)moveToView{ 

    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil]; 


    DashboardVC *initView = (DashboardVC*)[storyboard instantiateViewControllerWithIdentifier:@"Dashboardvc"]; 

    [initView setModalPresentationStyle:UIModalPresentationFullScreen]; 

    [spinner stopAnimating]; 
    [self presentViewController:initView animated:NO completion:nil]; 
} 


- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex 
{ 
    [self moveToView]; 
} 

- (void) alertView1:(UIAlertView *)alertView1 didDismissWithButtonIndex:(NSInteger)buttonIndex 
{ 
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil]; 
    LoginVC *initView = (LoginVC*)[storyboard instantiateViewControllerWithIdentifier:@"loginvc"]; 
    [initView setModalPresentationStyle:UIModalPresentationFullScreen]; 
    [self presentViewController:initView animated:NO completion:nil]; 
} 
-(void)threadStartAnimating:(id)data 
{ 
    [spinner startAnimating]; 
} 


@end 

hier hinzufügen müssen, indem ich die Anzeige initialse und starten und die Spinner zu stoppen, aber es ist nicht für mich woking ... jemand mir helfen, die Fragen, wie man hinzufügen die lösen Aktivitätsanzeige, wenn die Navigation die eine andere Ansichtwenn Navigieren Sie durch die andere Seite Aktivitätsanzeige

Vielen Dank im Voraus

+0

warum u hat der Aufruf der Methode in falschen Ort –

+0

u kann mir helfen, die Probleme zu beheben – fathima

+0

aber Ihr Code synchrone Methode, wie seine Werke Schwester –

Antwort

1
[self.view addSubview:spinner]; 

An dieser Linie stoppen möchten Sie die Aktivitätsanzeige auf die aktuelle ViewController Ansicht hinzuzufügen.

jedoch, wenn Sie auf andere Ansicht

DashboardVC *initView = (DashboardVC*)[storyboard instantiateViewControllerWithIdentifier:@"Dashboardvc"]; 
[self presentViewController:initView animated:NO completion:nil]; 

die aktuelle Ansicht Änderungen an den neuen Viewcontroller Ansicht navigieren. Der Aktivitätsindikator ist in dieser Ansicht nicht vorhanden und daher wird Ihr Aktivitätsindikator dort nicht angezeigt.

zu lösen, Sie wieder Aktivitätsanzeige in dem zweiten Viewcontroller des viewDidLoad Methode im Dashboard-VC

- (void)viewDidLoad { 

    [super viewDidLoad]; 
    UIActivityIndicatorView *spinner = [[UIActivityIndicatorView alloc] initWithFrame:CGRectMake(150, 225, 20, 30)]; 
    [spinner setActivityIndicatorViewStyle:UIActivityIndicatorViewStyleGray]; 
    spinner.color = [UIColor blackColor]; 
    [self.view addSubview:spinner]; 
} 

Eine bessere Lösung zu verwenden, würde hinzufügen sollten Dritte huds Fortschritte, die den Ladeanzeigeteil machen absolut einfach wie MBProgressHUD

+0

Es funktioniert nicht für mich Mr.Shubhank – fathima

+0

wir müssen Ihren Code debuggen, können Sie durch die fallen lassen (http://chat.stackoverflow.com/rooms/26424/iosandroidchaosoverflow) – Shubhank

+0

ok krank update mein code wieder du kannst post – fathima

0

wenn Sie aufhören UIActivityIndicatorView dann auch verstecken.

[spinner setHidesWhenStopped:YES];

EDIT: Wenn Sie nicht sicher sind, NSThread dann einfach so tun.

if ([test isEqual:helloString]) { 
    //[NSThread detachNewThreadSelector:@selector(threadStartAnimating:) toTarget:self withObject:nil]; 
    [spinner startAnimating]; 
    [self moveToView]; 

} 

Und wenn man es zehn

[spinner stopAnimating]; 
[spinner setHidesWhenStopped:YES]; 
+0

es funktioniert nicht für mich die Aktivitätsanzeige nicht angezeigt – fathima

+0

- (void) threadStartAnimating: (ID) Daten { [Spinner startAnimating]; } spinner nicht evn starten animieren – fathima

+0

wo Sie diese Bedingung testen '[test isEqual: halloString]'? (in welcher Methode) –

0

Sie sollten activityindicator auf navigation controller hinzufügen, so ist es rema Ins vorne, wenn Sie navigieren.

sollten Sie MBProgressHud die große Third-Party-Bibliothek verwenden.

Setzen Sie einfach Klasse im Projekt und importieren .h in Ihrer Klasse-Datei, wenn Sie Aktivitätsanzeige angezeigt werden soll und fügen Sie dann HUD (Aktivitätsanzeige) wie,

[MBProgressHUD showHUDAddedTo:self.view animated:YES]; 
// in your case show hud on `self.navigationController.view` 
// use main thread to show if required 

und verstecken wie,

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_LOW, 0), ^{ 
// Do something... 
dispatch_async(dispatch_get_main_queue(), ^{ 
    [MBProgressHUD hideHUDForView:self.view animated:YES]; 
}); 
}); 

Hope this :)

+0

Ich möchte nicht die Bibliothek von Drittanbietern verwenden ... können Sie meinen Code bearbeiten und schlagen Sie mir die besten und – fathima

+0

Vielen Dank im Voraus – fathima