主XIB没有显示?

时间:2011-10-09 04:20:05

标签: ios delegates xib

我目前遇到主要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 ,所以这就是为什么我很困惑。 我该如何解决这个问题?

谢谢!

1 个答案:

答案 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已经为你做了。