проблема shouldPerformSegueWithIdentifier

Я слишком много пытался решить мою нижеприведенную проблему, но мне это не удалось. Пожалуйста, помогите мне решить эту проблему. У меня есть вид входа в систему и после проверки идентификатора и пароля, я нажимаю на следующий контроллер просмотра. Пожалуйста, проверьте изображение ниже.

Проблема: когда идентификатор и пароль верны, он переходит к следующему контроллеру просмотра, но после 2-х нажатий на кнопку входа.

Код -

ServiceManager.m

 -(void)initGetAppServiceRequestWithUrl:(NSString *)baseUrl onCompletion:  
 (ServiceCompletionHandler)handler
 {
     NSString *fullUrl = [NSString stringWithFormat:@"%@",[baseUrl 
            stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
     NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL 
            URLWithString:fullUrl]];
    [NSURLConnection sendAsynchronousRequest:(NSURLRequest *)request
                                   queue:[NSOperationQueue mainQueue] 
         completionHandler:^(NSURLResponse *response,NSData *data,NSError *error)
   {
     if (error) {
         handler(nil,error);
        // NSLog(@"error = %@",error);
    }
     else
     { handler(data, nil);
       // NSLog(@"data = %@",data);
     }
  }];

}

JSONResponseHandler.m

 +(void)handleResponseData:(NSData *)responseData onCompletion:(JSONHandler)handler
 {
     if (responseData) {
         NSError *jsonParseError;
         NSDictionary *json = [NSJSONSerialization JSONObjectWithData:responseData 
         options:kNilOptions error:&jsonParseError];
         if (!json) {
             handler(nil , jsonParseError);
         }
        else
        {
             handler (json , nil);
        }  
    }
}

ASKevrServiceManager.m

 -(void)login:(Login *)login completionHandler:(ServiceCompletionHandler)handler
 {
     NSString *loginUrl = [NSString    
     stringWithFormat:@"http://249development.us/johnsan/askever/login.php?
     login=%@&password=%@",login.emailAddr , login.password];
     [self initGetAppServiceRequestWithUrl:loginUrl onCompletion:^(id object, NSError 
      *error)
     {
        handler(object , error);
     }
    ];
  }

ASKevrOperationManager.m

  +(void)login:(Login *)login handler:(OperationHandler)handler
  {
       ASKevrServiceManager *serviceManager = [[ASKevrServiceManager alloc]init];
      [serviceManager login:login completionHandler:^(id object, NSError *error)
      {
          [JSONResponseHandler handleResponseData:object onCompletion:^(NSDictionary 
           *json , NSError *jsonError)
          {
            if(json)
            {
                handler(json , nil , YES);
             }
            else
            {
               handler(nil , jsonError , NO);
            }
        }];
    }];
 }

LoginViewController.m

-(BOOL)shouldPerformSegueWithIdentifier:(NSString *)identifier sender:(id)sender
{
   if ([identifier isEqualToString:@"pushTab"])
   {
     if ([emailTxt.text isEqualToString:@""] || [passwordTxt.text 
     isEqualToString:@""])
     {
       [self showAlertWithMessage:@"Please write your id or password"];
       return NO;
  }
 else
 {
    Login *loginModel = [[Login alloc]init];
    loginModel.emailAddr =emailTxt.text;
    loginModel.password = passwordTxt.text;
    [ASKevrOperationManager login:loginModel handler:^(id object , NSError *error , 
    BOOL success)
     {
         if (success)
         {
             NSLog(@"object =%@",object);
             NSDictionary *arr = [object objectForKey:@"response"];
             str = [arr objectForKey:@"flag"];
             //check for error
                 NSDictionary *toDict = [object objectForKey:@"response"];
                 currentUserId = [toDict objectForKey:@"c_id"];
                 NSLog(@"currentUserId = %@",currentUserId);
         }
         else
         {
             [self showAlertWithMessage:@"Wrong Id or Password."];
         }
     }];
    NSLog(@"str = %@",str);
    if ([str isEqualToString:@"1"])
    {
       // [self showAlertWithMessage:@"Wrong Id or Password."];
        return YES;
    }
   }
 }
return NO;
}

Ответы на вопрос(1)

Ваш ответ на вопрос