对于很多初学者来说,肯定希望自己尝试不用傻瓜的“Single View Application”模板创建一个含有View的窗口,而是希望能从零开始,先建一个空的框架,然后逐渐向里面添加View。但遗憾的是 XCODE4.6既没有在开始向导中包含4.0版本的“Window-Based Application”选项,也没有直接添加UIViewController subclass模板的选项,所以在很多之前的书籍中介绍的方法都不适用,让初学者无所适从。其实,在4.6版本中创建从零开始的窗口更简单。
1.新建一个Empty Application.没有比这更能简化的版本了。接下来的选项中Product Name命名为WindowBasedApp,Class Profix命名为WBA,如下图所示:
2.鼠标停在项目上,右键new file
创建一个View Controller。为此,先新建一个普通类,如图,选择Objective-C Class:
3.点击“Next”,在接着出现的界面中,将新类命名为myViewController,同时注意选取Subclass为ViewController,而不是NSObject。选中With XIB for user Interface。当然,如果你想更绝的,连xib也自己重新建立,那也可以,后面将介绍方法。
4.现在,你的项目应该如下图所示。注意,为了测试是否能打开你的View,在view中加入了一个Label。
5.运行一下模拟器。事实上,你会发现你添加的label并未出现。
6.打开WBAAppDelegate.h,添加如下内容:myAppViewController.h根据自己的命名文件来写,报错会有人性化的提示
#import "myAppViewController.h"
和
@property (nonatomic,retain) myAppViewController *viewController;
如图:
7.打开WBAAppDelegate.m,添加如下3行,具体位置如图:
@synthesize viewController;
self.viewController = [[myAppViewController alloc]initWithNibName:@"myViewController"bundle:nil];
[self.window addSubview:viewController.view];
解释一下,添加的第二行为添加一个viewcontroller实例。这一句很重要,因为之前只是建立一个viewcontroller类,该行建立一个和xib文件关联的实例。添加的第三行向窗口添加控制器的视图。
8.运行,成功!
如果第3步没有选择包含xib,则需要在做完上述步骤后,再完成如下操作(BTW:如果已经选择了,又不想重做,可以删除xib文件)
9.添加User Interface 这次选View,如图:
10. 起一个名字,如myViewController,如图
11.你将添加一个xib文件myViewController.xib(当然还有一个View)。为了测试是否成功,在View中添加一个了Lable,如图:
12.当然这还不算成功,还未将Controller与View关联起来。
先选择这个xib的File's Owner图标,然后在其Identity Inspector中,将其基类由NSObject 改为 myViewController,这个类是你自己建立的了。如图:
13.按住Control键,拖动File's Owner图标到View图标上,在弹出的Outlet面板中,选中View为其输出口(Outlet)。
14.搞定!重新运行,显示Lable。