2012-03-09 4 views
0

хотел бы знать, как исправить эту ошибку.ошибка для перехода с ZBar на другой вид

я буду

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

Ok Есть некоторые проблемы с кодом ...

  1. Seques это функция, которая должна быть использована в iOS5 (и позже), и только если вы выбираете раскадровки вместо xibs
  2. Если вы действительно используете seque, вы должны определить идентификатор в Interface Builder, нажав на вашем seque и введите имя идентификатора в инспекторе
  3. seque автоматически инстанцировании контроллер назначения, так что вам не придется делать это вручную

так собственно вызов 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]; 
} 

Я надеюсь, что это помогло ...