如果我有一个从一个viewcontroller到另一个viewcontroller的segue,有没有办法将它们的标识符分配给一个变量,所以可以引用变量而不是文字字符串,如下所示?
- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
NSLog(@"%@", segue.identifier);
if([segue.identifier isEqualToString:@"someSegueName"]){
//push to view controller
}
}
我喜欢它,所以如果标识符名称改变,它将更新变量赋值。
答案 0 :(得分:1)
我不是很生气,为什么你要这样做呢?如果适合你,你可以尝试下面的逻辑。
您可以尝试使用枚举,将不同segue的枚举值作为字符串,并将该字符串用作标识符。
可以存储在数组中并相应地使用
另一种方法是为每个标识符创建常量。
答案 1 :(得分:0)
当第一次以这种方式调用该方法时,可以将其保存到变量: -
- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
NSLog(@"%@", segue.identifier);
if([segue.identifier isEqualToString:@"someSegueName"]){
someVariable = seague; // This is my addition.
//push to view controller
}
}
但是,我建议你将segue名称保存在类中的常量字符串中,这样你就可以重复使用它而不会出错。这样,稍后更改segue名称也会更容易。
- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
NSLog(@"%@", segue.identifier);
if([segue.identifier isEqualToString:someVariable]){ //I've changed this line
someVariable = seague;
//push to view controller
}
}