我还不熟悉iPhone上的编程,并研究过我的问题,但对任何解决方案都没有好运。
我已设法跟随ZBar SDK Integration tutorial在一个标签控制器中最后有一个有用的应用程序。
我要做的是将结果移动到单独的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。
答案 0 :(得分:1)
UIViewController *newTopViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"ProductView"];
[reader presentViewController:newTopViewController animated:YES completion:nil];
答案 1 :(得分: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;
}