如何在 Xcode 4.2 之后建立WindowBased Application

        将Xcode升级到Xcode 4.2之后,以往积累的由WindowBased Template发展出各种Application界面的经验一下子给扼杀了,说实在的,利用WindowBased来构建自己的application乐趣多多,所以实在不想跟着那些框框走,于是想办法了,在经过一番摸索尝试之后,终于成功了。但过了一段时间,当建立一个新项目时,发觉自己又忘记了一些窍门,于是想把它记录下来以后备用,这些当然参考了网上一些文章  http://blog.sina.com.cn/s/blog_4f1d20f30100twtd.html


因為在參考文章里已經有詳細的图文介紹,所以這裡不再重复,只想提出几点注意事项:

1、ios Appliction是先从UIAppliction开始的,而UIApplication对象建立之后,UIApplication又委托AppDelegate进行具体的UI初始化工作,UI的初始化工作又由AppDelegate的window对象开始,当然,window对象的初始化工作其实是交由rootViewController进行的。即UIApplication -> AppDelegate -> window


2、参考文章是从Empty Project开始的,比对之前的windowBased Template,就发现,少了一个Mainwindow.xib文件,亦即是主要的用户界面,所以要先新建立一个Mainwindow.xib文件,获得一个界面。比对旧的WindowBased Template发现,File‘s Owner之类别需要重新设为上面提到的UIApplication,界面中没有AppDelegate对象,所以要加入一个Object并将其类别改为我们的AppDelegate类别,然后将File‘s Owner的delegate设定为AppDelegate,而AppDelegate.h中附带的window 不是IBOutlet对象,因此要先将其变为IBOutlet对象,再和MainWindow.xib中的window对象要关联起来。这样就基本大功告成了,但实际上,还必须在TARGETS 的Summary中,将main interface 设定为MainWindow!只有这样,你在IB中加入的东西才能正确显示出来。


3、而AppDelegate.m文件中

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

{

    self.window = [[[UIWindow allocinitWithFrame:[[UIScreen mainScreenbounds]] autorelease];

}

这一句代码可以remark处理(实际上不影响)。

保留这一句代码,而不将main interface 设定为MainWindow,这一句其实可以用于用代码创建自己的UI,改为以下代码,就能显示自己的label:

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

{

    self.window = [[[UIWindow allocinitWithFrame:[[UIScreen mainScreenbounds]] autorelease];

    // 用代码建立自己的label

    UILabel *label = [[UILabel allocinitWithFrame:CGRectMake(1602306040)];

    [label setText:@"hello"];

    [label setTextColor:[UIColor redColor]];

    [self.window addSubview:label];

    self.window.backgroundColor = [UIColor whiteColor];

    [self.window makeKeyAndVisible];

    return YES;

}

实际上,你 即使不进行1和2的工作, 你一样可以用代码构建自己的UI!!


4、其实根据这个原理,亦可以将其他的Application Template改造,不过用Empty Project Template的好处是它在创建时,有core data选项。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值