iOS - 没有调用来自警报视图的segue

时间:2014-05-13 16:56:14

标签: ios objective-c uiviewcontroller uialertview uistoryboardsegue

当我在AlertView上按下手动输入和扫描标签按钮时,我想要执行一个segue。

@implementation triageViewController
- (IBAction)addNew:(id)sender {

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Add A New Entry"
                                                message:@"Choose a way to add a new entry."
                                               delegate:nil
                                      cancelButtonTitle:@"Cancel"
                                      otherButtonTitles:@"Manual Entry", @"Scan Tag", nil];
  [alert show];
}
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {
  if (buttonIndex != alertView.firstOtherButtonIndex) {
    [self performSegueWithIdentifier:@"manual" sender: self];
}
  if (buttonIndex != alertView.cancelButtonIndex) {
    [self performSegueWithIdentifier:@"scan" sender: self];
  }
}

(我意识到这可能会使取消按钮现在成为一个segue,但我更关心的是让它工作)

我的故事板中有两个segue,从UITabViewController到两个不同的UIViewControllers。这些都没有被调用,所以当我点击它们时。我尝试使用push和modal segues,但两个都没有工作。

我也尝试了if / else语句,如下所示:

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {
if (buttonIndex == 0) {
    [self performSegueWithIdentifier:@"manual" sender: self];

}
if (buttonIndex == 1) {
    [self performSegueWithIdentifier:@"scan" sender: self];
}
}

但这也不起作用。

有人可以帮我弄清楚出了什么问题吗?在我不清楚的情况下,我想从位于UITabBarController上的UIAlertView弹出窗口中将segue预先形成为两个单独的UIViewControllers。 感谢

1 个答案:

答案 0 :(得分:1)

您的UIAlertView似乎delegate nil,因此您的功能永远不会被调用。将其设置为self,然后在视图控制器的标题中确保您正在实施UIAlertViewDelegate协议。