主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已经为你做到了。
第一部分对于iOS 5来说不是真实的。它只有一个XIB,并且是View Controller,我没有看到任何MainWindow.XIB。编辑:我删除了第一行,我分配的UIWindow,它仍然不显示我的视图控制器,但它现在在控制台说:这应用程序启动结束时应用程序预计有一个根视图控制器'另我编辑我的代码,以反映当前状态我在 –
如何消除此行self.viewController = [[[Game3ViewController alloc] initWithNibName:@“Game3ViewController”bundle:nil] autorelease]; ,然后在界面生成器中添加视图控制器 – raixer
我是否应该删除UIWindow分配线?我也应该让我的UIWindow和视图控制器一个IBOutlet,然后在mainwindow.xib连接它? –