应用启动后的黑屏

时间:2013-10-21 16:49:44

标签: ios viewdidload appdelegate viewdidappear rootview

我正在设置第一个将出现在App Startup上的viewController。那是我的AppDelegate.h:

#import "AppDelegate.h"
#import "TutorialController.h" // a simple UIViewController

@implementation AppDelegate

@synthesize window;

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    window.rootViewController = [[TutorialController alloc] init];

    [window makeKeyAndVisible];

    return YES;
}

它没有提供任何警报,但启动应用程序,在启动画面后,它只显示黑屏。没有那个代码一切正常。我不能在StoryBoard中这样做,因为在解决了这个问题后,我必须添加其他东西......可能出错了什么?谢谢!

已解决:Solved using followben's reply.

3 个答案:

答案 0 :(得分:8)

·H:

@class MainViewController;

@interface AppDelegate : UIResponder <UIApplicationDelegate>

@property (strong, nonatomic) UIWindow *window;
@property (strong,nonatomic) MainViewController *mainViewController;

的.m:

#import "MainViewController.h"

@implementation AppDelegate
@synthesize mainViewController;


- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{


    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    self.mainViewController = [[MainViewController alloc] initWithNibName:@"MainViewController" bundle:nil];
    self.window.rootViewController = self.mainViewController;
    [self.window makeKeyAndVisible];
    return YES;
}

编辑,完整的project link (zipped)(工作:))

EDIT2:

如果你正在使用Storyboard,制作一个故事板文件,并将其分配给项目的故事板,就像你在这张图片上看到的那样:主界面与你的故事板文件名相同。

enter image description here 而且您不必在应用代理中写任何内容:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    // Override point for customization after application launch.
    return YES;
}

您可以通过将此小箭头移动到想要在此图片上设置启动器的ViewController来设置起始页面:

enter image description here

如果你想用你的新TutorialViewController分配你的ViewController(在故事板中),就像这样:

enter image description here

答案 1 :(得分:1)

直到我所知道,这个问题是由 - (void)loadView 方法引起的。因此,删除或注释此方法,而是使用 - (void)viewDidLoad来加载所有内容。

答案 2 :(得分:0)

对我来说,这是因为我可能运行的是iOS 12.4,但默认情况下,iOS projet是一些Scene Delegate,它仅适用于iOS 13。