本文介绍了UIButton与IBAction和Segue的顺序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

假设我有一个UIButton控件,我在Click和Segue上都附加了@IBAction方法。是否保证在段之前调用Click方法?

提前谢谢。

推荐答案

这样做,在您的情况下将非常有效..

在您的第一个ViewController.h中创建一个属性来存储indexPath

@property (nonatomic,strong) NSIndexPath *indexPath;

在第二个ViewController.h中创建一个属性来存储indexPath

@property (nonatomic,strong) NSIndexPath *indexPath;

现在您的第一个ViewController.m文件

暂时忘记IBAction,在cell ForRow中编写此选择器

[cell.btnOnCell addTarget:self action:@selector(btnAction:event:) forControlEvents:UIControlEventTouchUpInside];

编写此方法

-(IBAction)btnAction: (UIButton *)sender event:(id)event
{
    NSSet *touches = [event allTouches];
    UITouch *touch = [touches anyObject];
    CGPoint currentTouchPosition = [touch locationInView:self.tblView];
    self.indexPath = [self.tblView indexPathForRowAtPoint:currentTouchPosition];
    NSLog(@"%li",(long)self.indexPath.row);

   [self performSegueWithIdentifier:@"segueIdToYourSecondVC" sender:self];
}

否编写此方法(此方法将在您的PerformSgueWithIdentifier之后调用)

 - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
 {
     if ([[segue identifier] isEqualToString:@"segueIdToYourSecondVC"])
     {
         // Get reference to the destination view controller
         YourSecondViewController *vc = [segue destinationViewController];
         vc.indexPath=self.indexPath;

     }
 }

谢谢..希望这对您有帮助。

这篇关于UIButton与IBAction和Segue的顺序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-21 18:13