ZBarを使用していて、バーコードをスキャンした後、新しいビューの準備ができる前に(Webルックアップが遅いなど)、検索中のUIActivityIndicatorViewを表示するサブビューを追加しようとしています。コードは次のとおりです。
- (IBAction)scanImage{
ZBarReaderViewController *reader = [ZBarReaderViewController new];
reader.readerDelegate = self;
reader.supportedOrientationsMask = ZBarOrientationMaskAll;
ZBarImageScanner *scanner = reader.scanner;
// (optional) additional reader configuration here
[scanner setSymbology: ZBAR_ISBN13 & ZBAR_ISBN10
config: ZBAR_CFG_ENABLE
to: 1];
// present and release the controller
[self presentViewController:reader animated:YES completion:NULL];
}
- (IBAction)existingImage {
ZBarReaderController *reader = [ZBarReaderController new];
reader.readerDelegate = self;
reader.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
[reader.scanner setSymbology: ZBAR_ISBN13 & ZBAR_ISBN10
config: ZBAR_CFG_ENABLE
to: 1];
[self presentViewController:reader animated:YES completion:NULL];
}
- (void) imagePickerController: (UIImagePickerController*) reader
didFinishPickingMediaWithInfo: (NSDictionary*) info
{
[reader dismissViewControllerAnimated:YES completion:NULL];
[reader.view addSubview:loading];
...
問題は最後の2つのステートメントにあります。リーダービューコントローラーは、コールドブロックの後半でセグエを実行するまで閉じられず、「読み込み中」のサブビュー(コードの前半で設定)は表示されません。コードを試して、読み込みが合法であることを示すことはできますが、必要なときに表示させることができません。画面にはカメラビューまたは既存の画像の画像が表示され、コンソールログで発生しているすべてのセグエセットアップアクティビティを確認できます。その後、セグエされたビューコントローラでビューが更新されます。FWIW iOS6が必要なため、dismissModalViewController:の代わりにdismissViewControllerAnimated:を使用していますが、とにかくそれを試しましたが、機能しませんでした。
どんな提案でも大歓迎です!