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

Posted

技术标签:

【中文标题】在加载根导航控制器之前显示启动画面 - iPhone【英文标题】:Display a Splash Screen Before Loading the Root Navigation Controller - iPhone 【发布时间】:2011-07-11 10:46:31 【问题描述】:

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

我见过许多覆盖 Default.png 文件的方法,等等。我不想实现那个。我想要一个单独的 UIView 在其中包含我的自定义图像和文本,并将该 UI 视图显示为启动画面

谁能指导我。

提前致谢

【问题讨论】:

【参考方案1】:

使用“self.window”首先显示启动图像。如果你简单地写“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];
  

【讨论】:

【参考方案2】:

给你,伙计。玩得开心愉快的编码......

- (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];

【讨论】:

你能不能一步一步地给我示范。请。我是新的 好的,我在这里做的是初始化一个新的 uiimageview 对象并将其添加到导航控制器的视图中。然后在 3 秒后,我将删除该 uiimageview。 请您一步一步地展示在此之前应该创建哪些视图以及应该创建和添加哪个 UINavigation 控制器。你知道就像一个教程 您需要将此代码放入应用程序确实完成启动方法中。此代码将在您的实际视图(第一个视图)显示在导航控制器中之前显示 3 秒的初始屏幕。 这将在加载根导航控制器之前显示启动屏幕。

以上是关于在加载根导航控制器之前显示启动画面 - iPhone的主要内容,如果未能解决你的问题,请参考以下文章

为啥在导航之前加载了我的另一个屏幕?

在我的初始屏幕加载 iphone 之前出现黑屏

当应用程序在 iPhone sdk 中进入后台时加载根视图

加载前启动画面白色闪烁(React Native Expo)

Phonegap (cordova) 2.4.0 启动画面显示缩小

在后台加载 Webview 时显示启动画面