我目前遇到主要XIB问题。
我正在使用iOS 5 Beta 7,所以它不应该是一个问题。无论如何,这就是我在app delegate中执行它以显示主视图的方式:
·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 Beta 7中查看Xcode的单视图应用程序的默认模板,你会发现甚至不是MainWindow.xib ,所以这就是为什么我很困惑。 我该如何解决这个问题?
谢谢!
答案 0 :(得分:3)
创建单视图应用程序时,它将创建2 .xib。一个是MainWindow.xib,另一个是ViewController.xib。 默认情况下,您不必触摸您的App委托,因为两个笔尖已经链接。
但是,如果您想通过选择基于窗口的模板从头开始,则必须稍后创建自己的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已经为你做了。