sender.identifier isEqualToString

时间:2012-10-19 05:09:35

标签: objective-c xcode

我有两个模态控制器,按钮关闭在每个控制器的顶部导航栏。 我想拦截主视图控制器中的正确关闭按钮。 不幸的是,这段代码不起作用,为什么?

   - (IBAction)close:(UIStoryboardSegue *)sender {

      if ([sender.identifier isEqualToString: @"FirstModalClose"]) {
        NSLog(@"FirstModalClose");
     }

       if ([sender.identifier isEqualToString: @"SecondModalClose"]) {
        NSLog(@"SecondModalClose");
     }
}

2 个答案:

答案 0 :(得分:3)

实际上,类型IBAction表明该方法是由GUI元素触发的(如果有的话),而不是segue。因此,发件人可能是UIControl而不是UIStoryboardSegue

也许你想要使用UIViewController的方法- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender。在那里,你得到两个:发件人 segue。

答案 1 :(得分:1)

我只需要在适当的字段中插入FirstModalClose和SecondModalClose :( 我在Storyboard Segue中插入了FirstModalClose和SecondModalClose,而不是在Storyboard Unwind Segue中插入。 现在一切正常。