我在我的iPhone应用程序中集成了第三方扫描sdk。我的应用程序是基于导航的,当集成第三方扫描sdk导航时,因为sdk的第一个文件是scannigSDKTestViewController.mm,只能使用initWithCoder方法进行初始化。
我从viewControllerX调用scannigSDKTestViewController,如下所示。
//in viewControllerX.h file
scannigSDKTestViewController *overlayController;
//in viewControllerX.m file
-(void) start_Scanning
{
[AppDelegate setNavigationController:self.navigationController];
overlayController = [[scannigSDKTestViewController alloc] initWithCoder:nil];
}
else {
[overlayController release];
overlayController = nil;
overlayController = [[scanningSDKTestViewController alloc] initWithCoder:nil];
}
[self.view addSubview:overlayController.view];
[overlayController startScanning];
}
// navigationController在applicationnameAppDelegate.h文件中声明
在scanSDKTestViewController.mm文件中,我调用另一个viewController ViewControllerZ如下代码UINavigationController *myNavigationController = [AppDelegate navigationController];
ViewControllerZ *viewScreenZ = [[ViewControllerZ alloc] init];
[myNavigationController pushViewController:viewScreenZ animated:NO];
[viewScreenZ release];
[myNavigationController release];
在上面的方法中,相机正在打开并且扫描正在讨价还价,但是在一些扫描之后应用程序崩溃了。我认为由于UINavigationController句柄myNavigationController
而发生了崩溃,但是在扫描导航到之后没有使用此句柄任何其他屏幕都停止了。
我不知道如何解决这个导航问题。
答案 0 :(得分:0)
您可以使用presentModalViewController
方法显示下一个视图,如下面的代码所示。
ViewControllerZ *viewScreenZ = [[ViewControllerZ alloc] init];
[self presentModalViewController:viewScreenZ animated:YES];
[viewScreenZ release];