i’m using a QR Code SDK when pressed the button, it will have a presentModalView in there i got a info button. i wanted it to link to another nib to show the info on how it works!
-(IBAction)QRscan;
{
//Make sure we can even attempt barcode recognition, (i.e. on a device without a camera, you wouldn't be able to scan anything).
if([SKScannerViewController canRecognizeBarcodes])
{
SKScannerViewController *scannerVC = [[SKScannerViewController alloc] init]; //Insantiate a new SKScannerViewController
scannerVC.delegate = self;
scannerVC.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(cancelTapped)];
UIButton *button = [UIButton buttonWithType:UIButtonTypeInfoLight];
[button addTarget:self action:@selector(settingsTapped) forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem *infoItem = [[UIBarButtonItem alloc] initWithCustomView:button];
scannerVC.navigationItem.rightBarButtonItem = infoItem;
scannerVC.title = @"Scan a QRcode";
qrtest.text = @""; //Reset our info text label.
scannerVC.shouldLookForQRCodes = YES;//QRCode Checker
UINavigationController *_nc = [[[UINavigationController alloc] initWithRootViewController:scannerVC] autorelease]; //Put our SKScannerViewController into a UINavigationController. (So it looks nice).
[scannerVC release];
[self presentModalViewController:_nc animated:YES]; //Slide it up onto the screen.
}
- (void) settingsTapped {
qrcode_info *otherVC = [[qrcode_info alloc] initWithNibName:@"qrcode_info" bundle:Nil ];
[self presentModalViewController: otherVC animated:YES];
[otherVC release];
}
You should add settingsTapped function into the _nc viewController, since it will be called from inside a modal view controller (which is _nc), then you would have to present another modal view controller on top of that.
Apple guidelines would recommend that you should “Flip” your info screen and not use another modal view controller. (see how weather app behaves when i is tapped)