xcode 4.2及以上 通过 empty application 构建 window base application 方法

XCode 4 以后,项目模版中没有了 Window-based Application,跟它比较接近的项目模版是 Empty Application. 如下图的选择:

我们想建一个 Window-based Application,需要在 Empty Application 基础上做一些设置。

下面是操作步骤,

新建一个 Empty Application

默认的 Empty Application 项目包含下面文件

创建 MainWindow.xib

新建一个 window类型的xib,命名为:MainWindow.xib, 如下图

新建好 MainWindow.xib 后

指定 MainWindow.xib 的 File‘s Owner的所属类为 UIApplication。如下图,

从Libray中拖动一个 Object 到界面上

指定刚刚拖入的Object的所属类为 应用的 AppDelegate, 这里是 WBAppAppDelegate,如下图:

设置好了后,Object 会立即变成 App App Delegate的名字。

把 MainWindow.xib的 File's Owner 的 delegate 跟 我们刚刚建立的 App App Delegate 建立关联:

关联的拖动是在 Show the Connections inspector 中的,即最右边的那个

修改 WBAppAppDelegate.h 文件,把 window 暴露给 xib 文件, 即增加IBOutlet 属性

修改前代码:

@property (strong, nonatomic) UIWindow *window;

修改后代码:

@property (strong, nonatomic) IBOutlet UIWindow *window;

然后需要在.m文件进行如下修改:

把原来的代码

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

{

    self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];

    // Override point for customization after application launch.

    self.window.backgroundColor = [UIColorwhiteColor];

    [self.windowmakeKeyAndVisible];

    returnYES;

}

修改成以下的形式

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

{

    //self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];

    // Override point for customization after application launch.

    self.window.backgroundColor = [UIColorwhiteColor];

    [self.windowmakeKeyAndVisible];

    returnYES;

}

把 App Delegate 的 window 跟界面上的Window捆绑

设置 应用的主界面

到此我们就建立了 Window-base Applicaiton。

为了这里的简单演示,我们这里在 MainWindow.xib 文件上放一个有文字的标签,可以一目了然的看到执行效果:

原文地址:https://www.cnblogs.com/rollrock/p/2777845.html