質問

TabbarControllerのタブの1つを押すと表示されるビューコントローラーがあります。このビューコントローラーでは、ViewDidloadメソッドでUIIMAGEPickerControllerを初期化します。

- (void)viewDidLoad
{
    [super viewDidLoad];

    //Set imagePicker
    //-------------------------//
    _imagePicker = [[UIImagePickerController alloc] init];
    _imagePicker.delegate = self;
    _imagePicker.videoMaximumDuration = 10.0f;
}

その後、ボタンが押されたときにuiimagepickercontrollerを表示することです。何らかの理由で、このビューコントローラーにタブアイコンが押されている場合、このViewDidloadメソッドが実行されている間に3〜4秒のハングがあります。 _imagePicker = [[uiimagePickerController alloc] init] reline _imagePicker = [[uiimagepickercontroller] init]をコメントすると、ハングタイムがなく、ビューコントローラーはすぐにロードされます。

UiimagePickercontrollerを割り当てて初期化する理由を知っている人はいますか?もしそうなら、それをバックグラウンドプロセスとして実行する以外にスピードアップする方法はありますか?これは通常の動作ではないようです。

私はiOS7を使用していますが、ViewWillappearまたはViewDivearを呼び出していません。

役に立ちましたか?

解決

これは、デバッグモードの場合(iPhoneが接続されてXcodeを介して実行されている場合)、これは問題にすぎません。同じアプリがXcodeに接続されずに実行されると、ラグは発生しません。

他のヒント

このiOS 12をお試しください

//show a HUD or activityIndicator
dispatch_async(dispatch_queue_create("openPhotosCamera", NULL), ^{
   
    UIImagePickerController *mediaUI = [[UIImagePickerController alloc] init];
    
    dispatch_async(dispatch_get_main_queue(), ^{
        //hide HUD or activityIndicator
        [presenter presentViewController:mediaUI animated:YES completion:nil];
    });
});

**プレゼンターはyourviewcontroller / selfです

これを試して。

    - (void)viewDidLoad{

    //Set imagePicker
    //-------------------------//
    _imagePicker = [[UIImagePickerController alloc] init];
    _imagePicker.delegate = self;
    _imagePicker.videoMaximumDuration = 10.0f;

[super viewDidLoad];
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top