在加载根导航控制器 - iPhone之前显示启动画面

时间:2011-07-11 10:46:32

标签: iphone

我是iPhone的新宠。在加载UIViewController之前,我已经使用了一些教程,一个启动画面。现在我想在我的应用程序中实现一个NavigationController,并希望在它之前显示一个Splash Screen。因为我是Iphone的新手,所以在加载根导航控制器之前我没有得到任何tutotrials或指南来制作启动画面。

我见过很多方法,他们过度编写Default.png文件等等。我不想实现那个。我希望UIView能够将自定义图像和文本放入其中并将UI视图显示为启动画面

任何人都可以指导我。

提前致谢

2 个答案:

答案 0 :(得分:8)

使用“ self.window ”首先显示启动图像。如果您只是简单地写“窗口”,则图像将不会在第一个视图中显示和设置动画,因为在这种情况下图像无法直接链接到窗口。在 appdelegate.m

中编写以下代码
 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions         
    {
           self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
        // Override point for customization after application launch.

        MasterViewController *masterViewController = [[MasterViewController alloc] initWithNibName:@"MasterViewController" bundle:nil];
        self.navigationController = [[UINavigationController alloc] initWithRootViewController:masterViewController];
        self.window.rootViewController = self.navigationController;
        [self.window makeKeyAndVisible];

        UIImageView *imgv = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"themes.png"]];
        imgv.userInteractionEnabled = YES;
        [self.navigationController.view addSubview:imgv];
        //[imgv release]; If you don't use ARC, uncomment this.

        [self performSelector:@selector(removeSplash:) withObject:imgv afterDelay:3.0];
        [self.window addSubview:self.navigationController.view];

        return YES;
    }

- (void)removeSplash:(UIImageView *)imageView 
  {
       [imageView removeFromSuperview];
  }

答案 1 :(得分:7)

在这里,你好友。玩得开心,编码愉快....

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
//Add a splash screen
    UIImageView *imgv = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"splash.png"]];
    imgv.userInteractionEnabled = YES;
    [navigationController.view addSubview:imgv];
    [imgv release];

    [self performSelector:@selector(removeSplash:) withObject:imgv afterDelay:3.0];

    [window addSubview:navigationController.view];
    return YES;
}



- (void)removeSplash:(UIImageView *)imageView {
    [imageView removeFromSuperview];
}