0

想知道如何解决这个错误。

我将会

  QRReader = [ZBarReaderViewController new];
  [self presentViewController:QRReader animated:YES completion:nil];

在customoverlay中我有一个按钮可以调用

 [helpButton addTarget:self action:@selector(goToTips) forControlEvents:UIControlEventTouchUpInside];

-(void)goToTips
{
    [QRReader performSegueWithIdentifier:@"scannerToTips" sender:self];
}

但是当我按下按钮时,我会收到此错误

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Receiver (<ZBarReaderViewController: 0x3c5350>) has no segue with identifier 'scannerToTips''
4

1 回答 1

1

好的,代码有一些问题......

  1. Seques 是 iOS5(及更高版本)中必须使用的功能,并且仅当您选择故事板而不是 xibs 时才使用
  2. 如果您确实使用了序列,则必须通过单击序列并在检查器中键入标识符名称来在 Interface Builder 中定义标识符
  3. 序列会自动实例化您的目标控制器,因此您不必手动执行此操作。

因此,对 sequ 的正确调用是:

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    ZBarReaderViewController *QRReader = [segue destinationViewController];
    // So to hold a reference and pass any data
}

但在你的情况下,我猜你没有使用 segue ......所以这样的代码就可以了:

[helpButton addTarget:self action:@selector(goToTips) forControlEvents:UIControlEventTouchUpInside];

-(void)goToTips
{
  QRReader = [ZBarReaderViewController new];
  [self presentViewController:QRReader animated:YES completion:nil];
}

我希望这有帮助...

于 2012-03-09T09:10:42.787 回答