本文介绍了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的顺序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!