0

私のiPhoneアプリケーションでは、EAGLViewやmetaiosdkなどのUnifeyemobileviewcontrollerクラスを使用しています。このviewcontrollerをロードすると、カメラビューがアクティブになり、これとともにいくつかのmetaioクラス関数も呼び出されます。実際には、ViewControllerのロードに非常に多くの時間がかかります。また、Unifeyeビューコントローラから別のビューに移動して戻ってくると、アプリがクラッシュします。だから、私はちょうど疑問に思っています、バックグラウンドで、またはアプリが開いたときに最初にビューコントローラをロードする方法はありますか?私はわかりません。読み込みを速くする方法があれば、アイデアを共有してください。

4

2 に答える 2

0

ビュー コントローラーの init メソッドで実行している作業量に応じて、少なくともビュー コントローラーの初期化中にアクティビティ インジケーターを表示できます。これを非同期に行うには、次のようなコードを使用できます。

- (IBAction)onStartPushed:(id)sender
{
    [activityIndicator startAnimating];
    // initialize the viewcontroller with a little delay, so that the UI displays the changes made above
    double delayInSeconds = 0.1;
    dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, delayInSeconds * NSEC_PER_SEC);
    dispatch_after(popTime, dispatch_get_main_queue(), ^(void){

        ARViewController* theViewController = [[ARViewController alloc] init];

        // present the viewcontroller
        [self presentModalViewController:theViewController animated:YES];

        [activityIndicator stopAnimating];
    });
}

たとえば、大きな 3D モデルをロードしたり、メイン スレッドをブロックする構成を追跡したりする場合は、ViewController 内で同じことを行うことができます。

于 2012-08-23T07:10:05.000 に答える
0

コントローラーが読み込まれると、カメラが表示されますか? コントローラーは正常に読み込まれますが、カメラの起動に時間がかかります。ここで遅延が発生します。また、imagePickerController の負荷を固定することはできません。代わりに、viewDidAppear でカメラを提示することもできます。これにより、ユーザーは最初にコントローラーを表示し、次に遅延、次にカメラを表示します。

于 2012-07-16T11:06:51.763 に答える