XCODE4.6从零开始添加视图
转自:http://www.cnblogs.com/luoxs/archive/2012/09/23/2698995.html
对于很多初学者来说,肯定希望自己尝试不用傻瓜的“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.创建一个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,添加如下内容:
#import "myAppViewController.h"
和
@property (nonatomic,retain) myAppViewController *viewController;
如图:

7.打开WBAAppDelegate.m,添加如下3行,具体位置如图:
@synthesize viewController;
self.viewController = [[myAppViewController alloc] initWithNibName:@"myViewController"bundle:nil];
[self.windowaddSubview: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。

XCODE4.6从零开始添加视图的更多相关文章
- ASP.NET MVC系列:添加视图
虽然在上一篇文章中我们知道通过控制器可以在浏览器输出HTML页面,但是这不是控制器主要干的事,因为页面上我为还要做很多好看的特效,页面展示的事情当然交给视图来做了:下面我们就来看看如何添加一个视图 添 ...
- [Asp.net MVC]Asp.net MVC5系列——添加视图
目录 系列文章 概述 添加视图 总结 系列文章 [Asp.net MVC]Asp.net MVC5系列——第一个项目 概述 在这一部分我们添加一个新的控制器HelloWorldController类, ...
- ASP.NET MVC 5 学习教程:添加视图
原文 ASP.NET MVC 5 学习教程:添加视图 起飞网 ASP.NET MVC 5 学习教程目录: 添加控制器 添加视图 修改视图和布局页 控制器传递数据给视图 添加模型 创建连接字符串 通过控 ...
- C# MVC 自学笔记—4 添加视图
==============================翻译============================== 在本节中,你将要修改 HelloWorldController 类,以便使 ...
- 【译】ASP.NET MVC 5 教程 - 3:添加视图
原文:[译]ASP.NET MVC 5 教程 - 3:添加视图 在本节内容中,我们将修改HelloWorldController类,使用视图模板来干净利索的封装生成HTML响应客户端的过程. 您将创建 ...
- 007.Adding a view to an ASP.NET Core MVC app -- 【在asp.net core mvc中添加视图】
Adding a view to an ASP.NET Core MVC app 在asp.net core mvc中添加视图 2017-3-4 7 分钟阅读时长 本文内容 1.Changing vi ...
- iOS 11开发教程(十四)iOS11应用代码添加视图
iOS 11开发教程(十四)iOS11应用代码添加视图 如果开发者想要使用代码为主视图添加视图,该怎么办呢.以下将为开发者解决这一问题.要使用代码为主视图添加视图需要实现3个步骤. (1)实例化视图对 ...
- iOS 11开发教程(十三)iOS11应用编辑界面添加视图
iOS 11开发教程(十三)iOS11应用编辑界面添加视图 在iOS中添加视图的方式有两种:一种是使用编辑界面添加视图:另一种是使用代码添加视图.以下是这两个方式的详细介绍. 1.编辑界面添加视图 使 ...
- vs2013中,自定义mvc 添加视图脚手架
参考文章: http://weblogs.asp.net/imranbaloch/archive/2013/09/15/customizing-the-asp-net-mvc-5-web-api-2- ...
随机推荐
- map,hash_map和unordered_map 实现比较
map介绍 Map是STL[1]的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处 ...
- kali2 ssh
vi /etc/ssh/sshd_config 1.将#PasswordAuthentication no的注释去掉,并且将NO修改为YES 2.将#PermitRootLogin without-p ...
- enum 使用
1.说明 enum是一个基本的关键字,却一直没弄清楚怎么用,这次在实现二叉树框架时需要用到常量,特地搜了一下,终于知道怎么用了. 2.enum使用要点 enum声明是一个类型,不是变量. enum经常 ...
- 将dataset写入数据库
最近在将excel中的文件导入到数据库中,用程序进行编写,由于数据量较大所以速度很慢,后来采用了SqlBulkCopy类,解决了速度的问题,我就insert语句,sqldataadapter.upda ...
- 转】MySQL客户端输出窗口显示中文乱码问题解决办法
原博文出自于: http://www.cnblogs.com/xdp-gacl/p/4008095.html 感谢! 最近发现,在MySQL的dos客户端输出窗口中查询表中的数据时,表中的中文数据都显 ...
- 【转】XML之命名空间的作用(xmlns)
原文链接:http://blog.csdn.net/zhch152/article/details/8191377 命名空间的作用,下面的内容是转载的,大家可以看看: 问题的出现:XML的元素名字 ...
- Jtemplates 基本语法
jTemplates是一个基于JQuery的模板引擎插件,功能强大,有了他你就再不用为使用JS绑定数据集时发愁了. 首先送上jTtemplates的官网地址:http://jtemplates.tpy ...
- ZOJ 3810 Pretty Poem 分类: ACM 2015-05-17 14:40 83人阅读 评论(0) 收藏
Pretty Poem Time Limit: 2 Seconds Memory Limit:65536 KB Poetry is a form of literature that uses ...
- excel分组求和
=SUMPRODUCT((C2:C99=F2)*(B2:B99)) 说明: C2:C99=F2 找到C2到C99之间的等于F2的值 如果有多个判断条件,采用*来管理 B2:B99 求和
- Python基础 列表
---***---传送门---***--- 文档解释 def append(self, p_object): """ L.append(object) -> Non ...