主XIB没有显示?

问题描述:

我目前遇到了与我的主要XIB有关的问题。主XIB没有显示?

我正在使用iOS 5 Beta 7,所以它不应该是一个问题。无论如何,这是我正在做它在应用程序的委托,以显示主视图:

.H

UIWindow *window; 
Game3ViewController *viewController; 

@property (nonatomic, retain) UIWindow *window; 
@property (nonatomic, retain) Game3ViewController *viewController; 

.M

@synthesize window = _window; 
@synthesize viewController = _viewController; 

在的applicationDidFinishLaunching方法:

//self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease]; 
    // Override point for customization after application launch. 
    self.viewController = [[[Game3ViewController alloc] initWithNibName:@"Game3ViewController" bundle:nil] autorelease]; 
    self.window.rootViewController = self.viewController; 
    [self.window makeKeyAndVisible]; 
    return YES; 

随后的dealloc:

- (void)dealloc { 
    [_window release]; 
    [_viewController release]; 
    [super dealloc]; 
} 

的问题是,我不知道如果我现在应该做的事的MainWindow.xib,我是谁?我认为这段代码会为我做所有事情,但当我加载应用程序时我看到的只是一个白色的窗口。我应该在MainWindow.xib中连接我的主视图吗?

无论如何,如果你看一下Xcode的默认模板在Xcode 7测试版的单一视图应用程序,你会看到有甚至不是一个的MainWindow.xib,所以这就是为什么我很困惑。 我该如何解决这个问题?

谢谢!

创建单个视图应用程序时,它将创建2个.xib。一个是MainWindow.xib,另一个是ViewController.xib。 默认情况下,您不必触摸您的应用程序委托,因为两个笔尖都已链接。

但是,如果您想通过选择基于窗口的模板从头开始,则必须稍后创建自己的View Controller。然后到视图控制器添加到你需要做的,你有这个在你的applicationDidFinishLaunching方法所做的一切窗口:

// Override point for customization after application launch. 
self.viewController = [[[Game3ViewController alloc] initWithNibName:@"Game3ViewController" bundle:nil] autorelease]; 
self.window.rootViewController = self.viewController; 
[self.window makeKeyAndVisible]; 
return YES; 

我的意思是,你需要消除你在哪里分配好自己的窗口中的第一行。 MainWindow.xib已经为你做到了。

+0

第一部分对于iOS 5来说不是真实的。它只有一个XIB,并且是View Controller,我没有看到任何MainWindow.XIB。编辑:我删除了第一行,我分配的UIWindow,它仍然不显示我的视图控制器,但它现在在控制台说:这应用程序启动结束时应用程序预计有一个根视图控制器'另我编辑我的代码,以反映当前状态我在 –

+0

如何消除此行self.viewController = [[[Game3ViewController alloc] initWithNibName:@“Game3ViewController”bundle:nil] autorelease]; ,然后在界面生成器中添加视图控制器 – raixer

+0

我是否应该删除UIWindow分配线?我也应该让我的UIWindow和视图控制器一个IBOutlet,然后在mainwindow.xib连接它? –