shouldPerformSegueWithIdentifier 问题

2024-02-28

I tried too much to solve my bellow issue but i am failed.Please help me to solve this issue. I have login view and after validating id and password i am pushing it to next view controller.Please check bellow image. enter image description here

问题 - 当 ID 和密码正确时,它会推送到下一个视图控制器,但在单击登录按钮两次后。

Code -

服务管理器.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;
}

当按下登录按钮时运行代码

if (![emailTxt.text isEqualToString:@""] &&
    ![passwordTxt.text isEqualToString:@""]){
    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);

            //perform the segue only when succesful
            [self performSegueWithIdentifier:@"yourSegue" sender:sender];
         }else{
            [self showAlertWithMessage:@"Wrong Id or Password."];
         }
     }];    
}else {
    [self showAlertWithMessage:@"Please write your id or password"];
}

保持你的shouldPerformSegueWithIdentifier simple

-(BOOL)shouldPerformSegueWithIdentifier:(NSString *)identifier sender:(id)sender
{
   if ([identifier isEqualToString:@"pushTab"])
   {
        //don't put logic here
        //put code here only if you need to pass data
        //to the next screen
        return YES:
   }
   return NO;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

shouldPerformSegueWithIdentifier 问题 的相关文章

  • iOS JPEG 图像旋转 90 度

    我正在使用选择器视图从相册中选择图像 我使用上面的代码 void imagePickerController UIImagePickerController picker didFinishPickingMediaWithInfo NSDi
  • SwiftUI - 从 NSObject 继承的 ObservableObject 在 iOS 13 中不会更新

    我知道 这是 无法在 iOS XX 中工作 问题之一 但我完全陷入困境 所以我有一个ObservableObject继承自的类NSObject 因为我需要听委托方法UISearchResultsUpdating class SearchBa
  • ArraySlice 中的 Swift [重复]

    这个问题在这里已经有答案了 在数组上使用 prefix 方法后 我得到了所谓的 arraySlice 我怎样才能将其转换为数组 我试图从 FacebookGraphApi 获取 Ints 然后请求前 3 个 前缀 3 并尝试将它们添加到新数
  • 如何在运行仅 iPhone 应用程序(非通用)的 iPad 上的 UIPickerView 中支持 VoiceOver?

    一般来说 我会查看 Apple 的 UICatalog 示例代码以获取基本的 VoiceOver 支持 但示例代码中似乎有对 UIPickerViews 的 VoiceOver 支持 我是否需要在某处提供accessibilityLabel
  • 奇怪的父/子NSManagedObjectContext现象

    我创建了两个这样的上下文 create writer MOC privateWriterContext NSManagedObjectContext alloc initWithConcurrencyType NSPrivateQueueC
  • 如何在 NSDate 变量中仅设置时间?

    我有 NSDate 变量 只想更改时间 不应更改日期 是否可以 例如 用户在 DatePicker 日期中选择日期间隔 如果是开始日期 我想将时间设置为 00 00 00 如果是结束日期 我将时间设置为 23 59 59 感谢你的帮助 问候
  • 当自定义子视图处理触摸时防止 UITableView 滚动

    在我的 iOS 应用程序中 有一个 UITableView 其中一个单元格中包含一个自定义子视图 该单元格是一个交互式视图 它处理触摸事件 touchesBegan touchesEnded touchesMoved 以更新自身 问题是 当
  • 如何在 SQLite 中替换字符串?

    如何更新具有以下内容的表列 var mobile 233KKFSDK3234 Documents Page jpg 并将其替换为 Documents Page jpg 在 SQLite 中 注意 所有文字 除了 Documents 是动态的
  • 如何从 iOS 应用程序检测不安全的 wifi 网络

    我想检测我的应用程序中是否存在不安全的 wifi 网络 是否有任何公共 iOS API 可以实现相同的目的 没有记录的 API 可以获取该信息 如果您的应用程序需要通过网络发送和接收敏感数据 您通常应该假设没有安全连接
  • AppDelegate 的变量用作全局变量不起作用

    我想使用我的 AppDelegate 来存储任何其他类都可以访问的对象 我已经像这样声明了这个 AppDelegate interface MyAppDelegate UIResponder
  • 除非在后台线程中获取新的引用,否则存在潜在的引用计数问题

    我有一个second https stackoverflow com questions 28898966 prefer property accessor or kvc style for accessing core data prop
  • 核心数据:为什么必须调用重新加载数据才能使我的应用程序运行?

    我花了整个晚上调试一个简单的应用程序 该应用程序从网络检索一张图像 是的 是的 旨在让我的生活更轻松 并将其显示在表格视图中 我这样做是为了练习学习核心数据 在我修复它之前 错误消息显示如下 2012 09 30 06 16 12 854
  • 你如何在react-native中实现捏合缩放?

    我一直在研究 PanResponder 我当前的工作假设是 我将检测是否有两个触摸正在向外移动 如果是 则增加元素大小onPanResponderMove功能 这似乎是一种混乱的方法 有没有更顺畅的方法呢 如果您只需要简单的捏缩放功能 只需
  • ShareKit + Facebook 身份验证不起作用

    我正在使用 ShareKit 从我正在开发的 PhoneGap 应用程序发布到 Facebook 我在 Facebook 中创建了该应用程序 并在我的项目中安装了该插件 Twitter 工作正常 但当我尝试在 Facebook 上分享时出现
  • ios Vision VNImageRequestHandler方向问题

    我正在尝试使用相机通过相机检测脸部VNImageRequestHandler iOS 愿景 当我在横向模式下用相机指向照片时 它会检测到面部 但方向模式相反 let detectFaceRequestHandler VNImageReque
  • UICollectionReusableView 方法未被调用

    我希望我的部分位于UICollectionView有一个带有图像的标题 我已按照以下步骤操作 在故事板中 分配了一个标题作为我的附件UICollectionView 给它一个标识符 创建了一个子类UICollectionReusableVi
  • 使用prepareForSegue传递数据

    我试图将数据从viewController 1传递到viewController2 我有2个按钮和1个segue 因此有一个segue标识符 这2个按钮 按下时每个按钮应显示 1个标签用于显示标题 1个textView用于显示定义 我很难显
  • UITextView:内存使用量巨大

    我在 UITextView 中遇到了内存使用过多的问题 我正在将 50Kb ascii 文本文件加载到 NSString 中 并将其分配给应用程序中空 UITextView 组件的 text 属性 这立即使我的内存占用量增加了 100Mb
  • 使用 nib 作为带有 nib 类的表节标题

    我想创建一个加载 nib 文件并将其设置为标题 UIView 的节标题 这个 nib 文件还将有一个关联的类 其中插座和操作连接到 因此我想像平常一样使用 nib 加载该类 我在网上搜索并找到了几个类似的答案 但我找不到任何适合我的答案 经
  • iOS WKWebView 处理文件下载

    我面临以下问题 在 Web 界面中 文件下载是通过锚标记触发的 如下所示 a href bla blabla a 虽然 Safari 浏览器可以处理此请求并打开一个对话框来处理文件 但 WKWebView 将此视为普通链接并且不对其执行任何

随机推荐