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 问题 的相关文章

  • kCVPixelFormatType_420YpCbCr8BiPlanarFullRange 帧到 UIImage 转换

    我有一个应用程序可以捕获 kCVPixelFormatType 420YpCbCr8BiPlanarFullRange 格式的实时视频来处理 Y 通道 根据苹果的文档 kCVPixelFormatType 420YpCbCr8BiPlana
  • 高度在 IOS (iphone) 上无法正常工作

    我已经创建了this https codepen io salman15 project live DWbWpo Codepen 上的网站 在尝试使其响应所有平台时 我遇到了问题 看起来单个 div 覆盖了整个页面 仅在 IOS 上 并且并
  • 如何使用 AVCaptureVideoPreviewLayer 从相机应用程序实现 2 倍变焦

    我的应用程序中有一个 AVCaptureVideoPreviewLaye 它运行良好 并且显示与相机应用程序相同的预览视频 我想实现相机应用程序的 2 倍变焦功能 我该怎么做呢 基本上 我希望我的预览层将视频源更改为与您在点击 1x 图标将
  • UICollectionview 单元格选择

    我制作了一个图像网格 为了显示其选择 我在选择时为图像绘制了边框 但问题是 当我选择顶部的一些图像并向下滚动图像网格时 底部的其他一些图像似乎也被选择了 下面是我的代码片段 UINib cellNib UINib nibWithNibNam
  • iOS 在视图中添加/删除阴影

    我不明白如何删除添加到视图中的阴影 我添加到我的视图中initWithFrame这样的阴影 self layer borderWidth 2 self layer borderColor UIColor clearColor CGColor
  • 如何在 iOS 企业帐户中创建开发人员配置文件请求?

    我们有 iOS 企业帐户 现在我们想要向我们的团队添加一名开发人员 该开发人员将创建一个开发人员配置文件 问题是新添加的开发人员在他的苹果帐户中看不到配置文件标签 任何人都知道新添加的开发人员如何创建配置文件 感谢您 Steps 您可以通过
  • MFMailComposeViewController 立即关闭

    情况是 MFMailComposeViewController 将被呈现 我看到它已经完成了一半 但后来就被驳回了 这是错误 serviceViewControllerReady 错误 错误域 UIViewServiceInterfaceE
  • 快速以编程方式打开 viewController

    我想通过代码在按钮上打开新的 UIViewController 我已经在故事板中制作了控制器 只想链接它 而且我不想使用 XIB 接口或 nibName 要打开新视图控制器 您需要在按钮单击事件中写入以下行 self performSegu
  • 将 React Native 应用程序嵌入到现有的 ios/android 应用程序中

    我需要知道是否可以在现有的 ios android 应用程序中 嵌入 一个 React Native 应用程序 而不共享 React Native 应用程序代码 我们目前有一个 React Native 应用程序 它使用一些插件依赖项 并被
  • 预填充 UICollectionView 单元重用队列

    问题 我有一个应用程序 只有一个UICollectionView我第一次滚动它时很卡顿 我已将来源范围缩小到正在创建新单元格 2 的事实 使用initWithFrame 因为周围没有可以重复使用的细胞 初始滚动后 重用队列不为空 单元格可以
  • 无法为 FacebookSDK 4 构建模块“FBSDKCoreKit”

    我在将 Facebook SDK 3 更新到 4 时遇到问题 当我添加框架时 它已成功添加 但是当我添加头文件时出现错误 无法构建模块 FBSDKCoreKit 不知道原因 在设置中 允许非模块化包含在框架模块中 设置为YES在构建设置中解
  • 如何让 iPhone 屏幕变暗

    我的 iPhone 屏幕上有一个刷新按钮 可以刷新当前视图中的表格 屏幕刷新得很漂亮 但是有没有办法让屏幕变暗 然后在表格刷新后再次变亮 您可以在要调暗的视图上放置一个带有黑色背景的非不透明视图 默认情况下 其 alpha 值为 0 因此是
  • 隐藏故事板中的导航栏

    谁能告诉我如何隐藏故事板中的导航栏 我下面的代码在模拟器中运行时工作正常 但它仍然出现在我的故事板中 这真的很烦我 因为它弄乱了我的图像的位置 有人可以帮忙吗 void viewWillAppear BOOL animated super
  • UITableView 在单元格刷新时滚动到顶部

    我有一个 UITableView 其中一个单元格的大小是动态调整的 以适应其中的 UITextView 每当键入一个键时 单元格都会检查计算出的高度是否增加 就像换行符一样 因此它可以告诉表单元格的高度需要重新计算 我用这段代码做到了这一点
  • 应用程序:didReceiveRemoteNotification:未调用 fetchCompletionHandler

    出现了这个功能application didReceiveRemoteNotification fetchCompletionHandler当应用程序被强制退出时不会被调用 我的印象是 无论应用程序处于什么状态 该函数都会被调用 但似乎只有
  • 带有 Retina-Tiles 的 MKTileOverlay

    我在 MKMapKit 中加载 512x512px 图块时遇到问题 服务器提供 512x512 jpeg 图块 我在 MKMapView 中找不到自定义视网膜图块的任何解决方案或示例实现 我做什么 当我将它们加载到 MKMapView 中时
  • 如何在 SceneKit 中以编程方式将 png 纹理包裹在立方体周围

    我是 SceneKit 的新手 试图让一些基本的东西工作 但到目前为止还没有取得多大成功 由于某种原因 当我尝试将 png 纹理应用于 CNBox 时 我最终除了黑色之外什么也没有 这是我在 viewDidLoad 中的简单代码片段 let
  • 如何从 UI 测试访问 App Delegate?

    我想访问特定的属性router在 UI 测试期间从启动的应用程序的应用程序委托中获取 但我不知道这是否可行 我努力了 let appDelegate UIApplication sharedApplication delegate as A
  • 如何将 Android 应用程序添加到已在 iOS 应用程序中使用的现有 Firebase 项目?

    我一直在我的 iOS 应用程序中使用 Firebase 项目 我现在想开始为 Android 应用程序使用相同的 Firebase 项目及其所有数据库和存储 在您的应用程序下Overview菜单 你应该按添加另一个应用程序并选择Androi
  • iOS 上 Safari 中的 shift 键

    有没有办法在javascript中判断手机键盘上是否按下了shift键 并将其与大写锁定 按两次shift键 区分开来 一些事实 首先 让我们看一下有关 iOS 键盘的一些事实 我假设您已经知道了 当您进入键盘模式时 shift键始终处于激

随机推荐