2012-06-25 36 views
1

如果存在某些條件,我想在啓動時首先提出一個模態視圖控制器。我使用下面的代碼:如何在啓動時呈現ModalViewController?

[self presentModalViewController:vc animated:NO]; 

這個代碼顯示了從viewDidAppear模態視圖控制器,但是,它不會從viewWillAppear中viewDidLoad中工作。將代碼放入viewDidAppear的問題是,它在加載模態視圖之前閃爍父視圖。

+2

爲什麼不在初始啓動時使初始父視圖不可見/透明,以便它不會閃爍?當模型視圖被解除時,使其可見。 – Gruntcakes

+0

我打算在初次啓動時使用默認圖像來覆蓋父視圖。但是,這似乎很狡猾。我希望解釋如何處理視圖,以及指向在啓動過程中調用的方法序列的指針。 – JSWilson

回答

0

我只是在viewDidLoad中創建一個輕微的延遲:

[self performSelector:@selector(presentVC) withObject:nil afterDelay:1.0]; 

而且在這個方法

-(void) presentVC{ 
    [self presentModalViewController:vc animated:NO]; 
} 
+0

添加延遲沒有幫助(我使用了延遲0)。在顯示所需的視圖之前,父視圖仍然顯示。 – JSWilson

1

我建議你這樣做,一旦應用程序啓動,但只有當你需要這樣做時一次

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
    if (![defaults objectForKey:@"firstLaunch"]){ 
     [self performSelector:@selector(yourModalView) withObject:nil afterDelay:0.2]; 
     [defaults setObject:[NSDate date] forKey:@"firstLaunch"]; 

    }   

    [[NSUserDefaults standardUserDefaults] synchronize]; 

如果您需要在每次啓動時都顯示該viewController的某些條件,請使用bdev代碼。

相關問題