在-prepareForSegue:sender:
中,如何检查sender
是否是编写-prepareForSegue:sender:
的视图控制器?
换句话说,如何比较sender
参数以查看调用-performSegueWithIdentifier:sender:
时传递的内容
我试过了:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([segue.identifier isEqualToString:@"identifier"])
if ([(MyViewControllerClass *)sender isEqual:self]) {
// stuff
} else {...}
}
}
还尝试==
代替isEqual:
。
始终执行else
部分。
答案 0 :(得分:1)
你可以试试这个
if([sender isKindOfClass:[MyViewControllerClass class]){
//do stuff
}
答案 1 :(得分:1)
更新:首先下面的代码是crap ofcourse,这里 的版本有意义:
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
[self performSegueWithIdentifier:@"segueIdentifier" sender:self];
}
- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if (segue.sourceViewController == sender) {
NSLog(@"i have been the sender");
}
}
愚蠢的最后版本作为参考你不应该做的事 - 快速回答: 我想你不想检查发件人。发件人也可以是一个激活segue的按钮 - 我要猜测你想要检查sourceViewController。
- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if (segue.sourceViewController == self) {
NSLog(@"i have been the source");
}
}
这将检查segue是否将从转换当前的ViewController。