проблема 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;
}