presentModalView问题

时间:2011-03-10 12:06:01

标签: iphone xcode ios presentmodalviewcontroller

enter image description here按下按钮时我正在使用QR码SDK,它会有一个presentModalView,我有一个信息按钮。我希望它链接到另一个笔尖,以显示其工作原理的信息!

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

2 个答案:

答案 0 :(得分:0)

您应该将settingsTapped函数添加到_nc viewController中,因为它将从模态视图控制器(即_nc)内部调用,然后您必须在其上面显示另一个模态视图控制器。

Apple指南建议您应“翻转”信息屏幕,而不要使用其他模态视图控制器。 (看看我点击时天气应用程序的行为)

答案 1 :(得分:0)

您正试图在不允许的模态视图控制器上显示模态视图控制器   您必须将子视图添加到摄像机视图。