错误从ZBar转移到另一个视图

时间:2012-03-09 06:46:14

标签: iphone ios xcode zbar-sdk

想知道如何解决此错误。

我会

  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''

1 个答案:

答案 0 :(得分:1)

好的,代码存在一些问题......

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

    -(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];
    }
    

    我希望这有助于......