RedLaser SDK を使用しています。私のアプリは分割ビューです。マスタービューコントローラーでバーボタンが押されたときに RedLaser オーバーレイを起動しようとしています。
ボタンが押されるとメソッドが呼び出され、そこから問題が始まります。オーバーレイを起動するコードには 3 つの異なるバージョンがあります。それぞれに独自の問題があります。
オプション 1 これは私のベースラインであり、オーバーレイを初期化していなかったため、機能しないことはわかっていました。次のコードはView Controllerを正しく起動しますが、(明らかに)私が望むことをしません。
// Working Code that brings up dialog but doesn't start camera overlay
SRSScanVINViewController *scanVINViewController y= [[SRSScanVINViewController alloc] init];
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:scanVINViewController];
[navController setModalPresentationStyle:UIModalPresentationFormSheet];
[navController setModalTransitionStyle:UIModalTransitionStyleFlipHorizontal];
[self presentViewController:navController animated:YES completion:nil];
[[UIApplication sharedApplication] setStatusBarHidden:YES];
オプション 2 このコードは、オーバーレイ コントローラーを開始し、クラッシュすることなく起動します。オーバーレイは機能しており、カメラはアクティブです。問題は、viewcontroller/overlay が画面全体を占めていることです。私のコントロール (ボタンなど) はすべて、View Controller が画面の左上部分の一部を占めているかのようにレイアウトされています。オーバーレイのサイズを正しく設定できれば、これは機能します。
// Working code that shows the overlay (camera on) but the overlay takes the whole screen
SRSScanVINViewController *scanVINViewController = [[SRSScanVINViewController alloc] init];
[pickerController setOverlay:scanVINViewController];
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:scanVINViewController];
[navController setModalPresentationStyle:UIModalPresentationFormSheet];
[navController setModalTransitionStyle:UIModalTransitionStyleFlipHorizontal];
[self presentViewController:pickerController animated:YES completion:nil];
[[UIApplication sharedApplication] setStatusBarHidden:YES];
オプション 3 この試みは、オプション 2 (上記) の問題を修正することでした。コードは次のとおりです。
SRSScanVINViewController *scanVINViewController = [[SRSScanVINViewController alloc] init];
[pickerController setOverlay:scanVINViewController];
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:pickerController];
[navController setModalPresentationStyle:UIModalPresentationFormSheet];
[navController setModalTransitionStyle:UIModalTransitionStyleFlipHorizontal];
[self presentViewController:pickerController animated:YES completion:nil];
[[UIApplication sharedApplication] setStatusBarHidden:YES];
次のエラー (nslog) でクラッシュします。
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Application tried to present modally an active controller <SRSMasterViewController: 0x1f59f540>.'
*** First throw call stack:
(0x37ecb88f 0x331fc259 0x30d86441 0x7f6b5 0x7edf7 0x37e253fd 0x30cbfe07 0x30d855e7 0x37e253fd 0x30cbfe07 0x30cbfdc3 0x30cbfda1 0x30cbfb11 0x30cc0449 0x30cbe92b 0x30cbe319 0x30ca4695 0x30ca3f3b 0x3630522b 0x37e9f523 0x37e9f4c5 0x37e9e313 0x37e214a5 0x37e2136d 0x36304439 0x30cd2cd5 0x7deb5 0x7de50)
terminate called throwing an exception
どんな助けでも大歓迎です。ありがとう!