以前是否可以在iOs中加载UIViewController

时间:2012-07-16 09:42:22

标签: iphone uiviewcontroller camera loading

在我的iPhone应用程序中,我使用的是Unifeye mobileviewcontroller类,包括EAGLView和metaio sdk。当我加载这个viewcontroller时,相机视图将被激活,同时这个metaio类函数也会被调用。实际上,加载视图控制器需要花费大量时间。此外,如果我尝试从Unifeye viewcontroller导航到另一个视图并有时回来,应用程序崩溃了。 所以,我只是想知道,是否有任何方法可以在应用程序打开时在后台或开头加载viewcontroller。我不确定。如果有任何方法可以更快地加载,请分享您的想法。

2 个答案:

答案 0 :(得分:0)

我打赌一旦控制器加载就会出现相机?您的控制器正常加载,但启动相机需要一些时间。这是你得到延迟的地方。而且你不能加紧imagePickerController的负载。相反,您可以在viewDidAppear中显示相机,因此用户将首先看到您的控制器,然后是相机的延迟。

答案 1 :(得分:0)

根据您在viewcontroller的init方法中执行的工作量,您至少可以在viewcontroller初始化时显示活动指示符。要异步执行此操作,您可以使用以下代码:

- (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];
    });
}

在你的viewcontroller中你可以做同样的事情,例如你想要加载大型3D模型或跟踪会阻塞主线程的配置。