2013-10-21 119 views
1

我正在设置将出现在应用程序启动上的第一个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.

+0

用'window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen] .bounds]创建一个窗口;'在设置rootViewController之前? – SolidSun

+0

不,我刚刚初始化@属性(强,非原子)UIWindow *窗口;'在.h但是,添加您的字符串,问题仍然存在... –

+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; 
} 

您可以通过移动这个小箭头,一个视图控制器,你要设置像起动设置起始页此图:

enter image description here

,如果你想与你的新TutorialViewController分配您的ViewController(在故事板)使它像这样

enter image description here

+0

'无法在捆绑中加载NIB:'NSBundle –

+0

因此您没有名为“MainViewController”的XIB = NIB,则使用self.mainViewController = [[MainViewController alloc ] 在里面]; – incmiko

+0

谢谢,但它运行并给出相同的黑屏... –

1

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

相关问题