我目前的主要 XIB 有问题。
我使用的是 iOS 5 Beta 7,所以这应该不是问题。无论如何,这就是我在应用程序委托(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 中单 View 应用程序的 Xcode 默认模板,您会看到 甚至不是 MainWindow.xib ,所以这就是我感到困惑的原因。
我将如何解决这个问题?
谢谢!
最佳答案
创建单 View 应用程序时,它将创建 2 个 .xib。一个是 MainWindow.xib,另一个是 ViewController.xib。
默认情况下,您不必触摸您的 App 委托(delegate),因为两个 nib 已经链接。
但是,如果您想通过选择基于窗口的模板从头开始,您必须稍后创建自己的 View Controller 。然后要将 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 - 主 XIB 没有显示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7701426/