Проблема в том, что читатель - это представленный контроллер представления в примере кода zbar
-(void)presentReaderInViewController:(UIViewController*)vc
, и вы рассматриваете себя так, как если бы он был представлен
Вы должны использовать reader
представьте свой AboutView
и только отклоните reader
в блоке else
if ([string isEqualToString:string2]) {
//this is the part that is not working : it doesn t load the AboutView at all
AboutView *about = [[AboutView alloc] initWithNibName:nil bundle:nil];
[reader presentModalViewController:about animated:YES];
}
else{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error"
message:@"This is not a recognized QR code!"
delegate:self
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alert show];
// ADD: dismiss the controller (NB dismiss from the *reader*!)
[reader dismissModalViewControllerAnimated: YES];
}
Вы также можете подождать, чтобы отклонить reader
в методе делегата вашего представления предупреждения (создайте мягкую ссылку и отклонитечто ... myReader = reader; когда вы настраиваете просмотр предупреждений)
- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex{
[myReader dismissModalViewControllerAnimated: YES];
}