0

這個問題與this one非常相似,只有一個例外。而不是有一個正常的導航控制器啓動我的默認視圖控制器,我已經添加了一個額外的視圖控制器,它只是一個啓動頁面,允許我顯示一個加載對話框/ etc啓動模態視圖控制器後,用戶從跳板返回時調用什麼方法?

在我的「viewDidLoad」控制器I推出這種採用「presentModalViewController」像這樣

- (void)viewDidLoad 
{ 
    SplashPage *splashScreen = [[[SplashPage alloc] initWithNibName:@"SplashPage" bundle:nil viewControllerObj:self] autorelease]; 
    [self presentModalViewController:splashScreen animated:NO]; 

    [super viewDidLoad]; 
} 

然後我潑視圖內我做了幾件事情(第一個是基本的連通性檢查,以確保應用程序有例如互聯網接入)。

並首次應用啓動我現在的活動飛濺視圖控制器的viewDidLoad中這裏面檢查(像這樣)

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    [self.viewController invokeConnectivityCheck]; 
} 

問題是這個 - 當這種失敗,用戶「卡住「在加載屏幕預啓動(基本上)時,當它們從跳板返回時(此處支持多任務處理),此splash控制器會調用哪種方法?

我試過以下,但是當我關閉該應用程序的每個不火,回來

  • applicationWillEnterForeground
  • didFinishLaunchingWithOptions
  • applicationDidBecomeActive

缺少什麼我在這裏, iOS5是否友好?或者,由於我在這裏使用的模態方法,主/默認視圖控制器被調用而不是飛濺?

預先感謝您

回答

0

所以它看起來像我用的是本身沒有借給驅動(通過的appDelegate)導航控制器風格的iPhone應用程序,而不是如此具有默認/主視圖控制器處理這個模式在viewDidLoad方法中的模式我把這個邏輯關閉到appDelegate本身,所以它不直接負責每個視圖控制器。

如果你打算做這樣的事情,我在appDelegates裏面調用它?使用當前活動的視圖控制器方法(基本上我保持狀態中的appDelegate所以它知道在焦點視圖控制器)

- (void)applicationDidBecomeActive:(UIApplication *)application 
{ 
    SplashPage *splashScreen = [[[SplashPage alloc] initWithNibName:@"SplashPage" bundle:nil] autorelease]; 
    [[self activieViewController] presentModalViewController:splashScreen animated:NO]; 

    ConnectivityWebService* service = [[[ConnectivityWebService alloc] initWithAppDelegate:self] autorelease]; 
    [service verifyConnectivity]; 
} 

這樣做的另一個要求是一個回調的的appDelegate關閉,像這樣的模態

- (void)callBackAfterConnectivityCheck 
{ 
    [[self activieViewController] dismissModalViewControllerAnimated:NO]; 
} 

希望這是有幫助的 - 如果有人別人(不是直接回答了這個問題)有一個合法的答案,我會給予信貸爲,因爲這主要是對歷史/另取所使用的模式。

1

appliationDidBecomeActive當你「從跳板回來」時肯定會被調用。

文檔:

這個方法被調用,讓你的應用程序知道它從 非激活到激活狀態移動。這可能是因爲您的應用程序 是由用戶或系統啓動的。如果用戶選擇忽略將 應用程序臨時發送到非活動狀態的中斷 (例如傳入電話或SMS消息),則應用程序還可以將 返回到活動狀態。

相關問題