1

iOS で画像選択ツールを読み込もうとしていますが、最初の試行では正常に動作しますが、2 回目にこれを行うと、次の警告が表示されます

警告: ウィンドウ階層にないビューで表示しようとしています!

画像を選択するための私のコードは次のとおりです

[self startCameraControllerFromViewController:self usingDelegate:self sourceType:UIImagePickerControllerSourceTypePhotoLibrary];

メソッドは次のとおりです startCameraControllerFromViewController

- (BOOL) startCameraControllerFromViewController: (UIView*) controller usingDelegate: (id) delegate sourceType:(UIImagePickerControllerSourceType) sourceType{

if (([UIImagePickerController isSourceTypeAvailable:
      sourceType] == NO)
    || (delegate == nil)
    || (controller == nil))
{
    DLog(@"no is being returned");
    return NO;


}

if(_delegate != nil &&[ _delegate respondsToSelector:@selector(imagePickerOpened)]){

    [_delegate imagePickerOpened];
}

if(cameraUI==nil){

    //        [SVProgressHUD showWithStatus:@"Loading"];
    [ALERT showLoader];

    dispatch_queue_t concurrentQueue=dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);

    dispatch_async(concurrentQueue, ^{
        cameraUI = [[UIImagePickerController alloc] init];

        cameraUI.sourceType = sourceType;

        cameraUI.mediaTypes=cameraUI.mediaTypes = [[NSArray alloc] initWithObjects: (NSString *) kUTTypeImage, nil];
        cameraUI.allowsEditing = YES;

        cameraUI.delegate = delegate;


        dispatch_async(dispatch_get_main_queue(), ^{
            [self.window.rootViewController presentModalViewController:cameraUI animated:YES];
            //[self presentModalViewController:cameraUI animated:YES ];

            [ALERT hideLoader];
        });


    });
}
else{
    cameraUI.sourceType = sourceType;
    [self.window.rootViewController presentModalViewController:cameraUI animated:YES];
    //[self presentModalViewController:cameraUI animated:YES ];
}

return YES;

}

4

1 に答える 1