2012-07-16 42 views
0

UIViewController,我使用的Unifeye mobileviewcontroller類包括EAGLView和metaio sdk。當我加載這個視圖控制器時,相機視圖將隨着這個被激活,一些metaio類的函數也被調用。實際上,加載視圖控制器花費了很多時間。而且,如果我嘗試從Unifeye視圖控制器導航到另一個視圖並且有時回來,該應用程序崩潰。 所以,我只是想知道,是否有任何方式來加載視圖控制器在後臺或在應用程序打開時的開始。我不確定。如果有任何可能的方法來加快加載速度,請分享您的想法。是否有可能先前加載我的iPhone應用程序中的iOs

回答

0

我敢打賭,一旦控制器被加載,相機就會出現?您的控制器正常加載,但啓動相機需要時間。這裏是你得到延遲的地方。並且你無法緊固imagePickerController的負載。相反,您可以在viewDidAppear中呈現相機,這樣用戶將首先看到您的控制器,然後延遲相機。

+0

現在我正在通過viewwillappear方法延遲調用相機加載函數。但仍然需要時間來加載相機。 – Mithuzz 2012-07-16 11:18:42

+0

就是這樣,視圖還沒有出現,並且您已經嘗試呈現相機:結果,用戶仍然會看到前一個視圖控制器,直到出現capera。爲什麼在viewWillAppear中使用performSelectorAfterDelay,如果你可以在viewDidAppear中正常使用它? – 2012-07-16 11:27:45

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

在您的視圖控制器,你可以,如果你如做同樣的事情想要加載大型3D模型或跟蹤配置,以阻止主線程。

相關問題