2011-10-15 71 views
0

嘗試以編程方式添加一個在指定時間內掛起的閃屏圖像。我已經將Default.png導入到我的項目中,並且當模擬器啓動時,我看到它閃爍爲啓動圖像。我不確定如何讓Default.png作爲飛濺圖像。iPhone Splash Image

在AppDelegate.m,裏面didFinishLaunchingWithOptions我做到以下幾點:

MyViewController *mvc = [[MyViewController alloc] init]; 
UINavigationController *navController = [[[UINavigationController alloc] initWithRootViewController:mvc] autorelease]; 
[navController setNavigationBarHidden: YES]; 

MyViewController,你可能會懷疑,是的UIViewController的一個子類,並在的loadView方法我做到以下幾點:

self.mainView = [[UIView alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 
self.view = mainView; 
mainView.backgroundColor = [UIColor yellowColor]; 

然後我創建了SplashScreenViewController,也是UIViewController的一個子類,並且在loadView方法中,我執行以下操作:

splashView = [[[UIImageView alloc] initWithFrame:CGRectMake(0,0, 320, 480)] autorelease]; 
splashView.image = [UIImage imageNamed:@"Default.png"]; 

最後,早在AppDelegate中我有makeKeyAndVisible後如下:

SplashScreenViewController *splashScreen = [[SplashScreenViewController alloc] init]; 
splashScreen.modalTransitionStyle = UIModalTransitionStyleCrossDissolve; 
[navController presentModalViewController:splashScreen animated:NO]; 

我想我只是卡住瞭解如何配合所有的UIViewController子類在一起,以及如何從AppDelegate中引用它們(或者是否我甚至應該這樣做)等。任何提示都表示讚賞。我可以澄清,如果我的問題是泥濘的。

+3

你有沒有考慮過不這樣做?這違反了Apple的人機界面指南:http://developer.apple.com/library/ios/#documentation/UserExperience/Conceptual/MobileHIG/UEBestPractices/UEBestPractices.html –

+0

我並未將此內容發佈到App Store,因此Apple HIG不適用。 – David

+0

大量的應用程序通常與UIProgressView結合使用。它本身不會引發拒絕。但是,如果設置有問題,則不能無限期地放置它,就像沒有連接一樣。 – BojanG

回答

1

可以makeKeyAndVisible

splashView = [[[UIImageView alloc] initWithFrame:CGRectMake(0,0, 320, 480)] autorelease]; 
splashView.image = [UIImage imageNamed:@"Default.png"]; 
[self.window addSubview:splashView]; 
[self.window bringSubviewToFront:splashView]; 

什麼是你的解僱視圖計劃前移至這MyViewControllerviewDidLoad

SplashScreenViewController *splashScreen = [[SplashScreenViewController alloc] init]; 
splashScreen.modalTransitionStyle = UIModalTransitionStyleCrossDissolve; 
[navController presentModalViewController:splashScreen animated:NO]; 

或者你可以在你的AppDelegate這樣做,?

+1

只是要做一個方法來刪除它,即dismissView – David

+0

然後只需將其粘貼在應用程序委託中,不需要另一個控制器(appdelegate本身就是一個控制器)。 – BojanG

+0

有道理。回到繪圖板!謝謝。 – David