0

我对在 iPhone 上进行编程还是很陌生,并且已经研究了我的问题,但对任何解决方案都没有运气。

我已经设法遵循ZBar SDK 集成教程,最后在选项卡控制器中拥有一个工作应用程序。

我想要做的是,将结果移动到单独的 ViewController。

- (void) imagePickerController: (UIImagePickerController*) reader
 didFinishPickingMediaWithInfo: (NSDictionary*) info
{
    // ADD: get the decode results
    id<NSFastEnumeration> results =
    [info objectForKey: ZBarReaderControllerResults];
    ZBarSymbol *symbol = nil;
    for(symbol in results)
        // EXAMPLE: just grab the first barcode
        break;

    ProductViewController *product = [self.storyboard instantiateViewControllerWithIdentifier: @"ProductView"];

    product.resultImage = [info objectForKey: UIImagePickerControllerOriginalImage];
    product.resultText = symbol.data;

    [reader dismissModalViewControllerAnimated:YES];
    [self presentModalViewController:product animated:YES];
}

我遇到的代码问题是产品视图控制器从未显示。

使用 Xcode 4.5、iOS 6 SDK。

4

2 回答 2

1

你试过了吗

UIViewController *newTopViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"ProductView"];
[reader presentViewController:newTopViewController animated:YES completion:nil];
于 2013-11-12T18:57:29.107 回答
0

我最终放弃了上述方法,而是在我的导航控制器上添加了处理显示的功能。

显示扫描:

[[self targetController] displayNewObject:scan];

在接收端:

- (void)displayNewObject:(_Scan *)scan
{
    self.scan = scan;
    self.tabBarController.selectedViewController = [self.tabBarController.viewControllers objectAtIndex:1];
    [[self navigationController] popToRootViewControllerAnimated:NO];
    [self performSegueWithIdentifier: @"ShowScanDetail" sender: self];
    self.scan = nil;
}
于 2013-11-13T21:52:08.370 回答