转自: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从零开始添加视图的更多相关文章

  1. ASP.NET MVC系列:添加视图

    虽然在上一篇文章中我们知道通过控制器可以在浏览器输出HTML页面,但是这不是控制器主要干的事,因为页面上我为还要做很多好看的特效,页面展示的事情当然交给视图来做了:下面我们就来看看如何添加一个视图 添 ...

  2. [Asp.net MVC]Asp.net MVC5系列——添加视图

    目录 系列文章 概述 添加视图 总结 系列文章 [Asp.net MVC]Asp.net MVC5系列——第一个项目 概述 在这一部分我们添加一个新的控制器HelloWorldController类, ...

  3. ASP.NET MVC 5 学习教程:添加视图

    原文 ASP.NET MVC 5 学习教程:添加视图 起飞网 ASP.NET MVC 5 学习教程目录: 添加控制器 添加视图 修改视图和布局页 控制器传递数据给视图 添加模型 创建连接字符串 通过控 ...

  4. C# MVC 自学笔记—4 添加视图

    ==============================翻译============================== 在本节中,你将要修改 HelloWorldController 类,以便使 ...

  5. 【译】ASP.NET MVC 5 教程 - 3:添加视图

    原文:[译]ASP.NET MVC 5 教程 - 3:添加视图 在本节内容中,我们将修改HelloWorldController类,使用视图模板来干净利索的封装生成HTML响应客户端的过程. 您将创建 ...

  6. 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 ...

  7. iOS 11开发教程(十四)iOS11应用代码添加视图

    iOS 11开发教程(十四)iOS11应用代码添加视图 如果开发者想要使用代码为主视图添加视图,该怎么办呢.以下将为开发者解决这一问题.要使用代码为主视图添加视图需要实现3个步骤. (1)实例化视图对 ...

  8. iOS 11开发教程(十三)iOS11应用编辑界面添加视图

    iOS 11开发教程(十三)iOS11应用编辑界面添加视图 在iOS中添加视图的方式有两种:一种是使用编辑界面添加视图:另一种是使用代码添加视图.以下是这两个方式的详细介绍. 1.编辑界面添加视图 使 ...

  9. vs2013中,自定义mvc 添加视图脚手架

    参考文章: http://weblogs.asp.net/imranbaloch/archive/2013/09/15/customizing-the-asp-net-mvc-5-web-api-2- ...

随机推荐

  1. socket 粘包问题(转)

    https://www.v2ex.com/t/234785#reply3 1. 面向字节流的 IO 都有这个问题. socket 中 tcp 协议是面向流的协议,发送方发送和接收方的接收并不是一一对应 ...

  2. accordion data-options iconCls

    <div id="aa" class="easyui-accordion" style="width:500px;height:300px;&q ...

  3. 第二百零四天 how can i 坚持

    我应该不会看错吧.最近媒体热炒小米衰落了,有必要那么大张旗鼓的报道吗?小米.华为,坚决看好小米.感觉华为品牌有些杂乱,在走三星的老路,小米有些苹果的影子,但是,多了个互联网.互联网... 未来孰优孰劣 ...

  4. 非官方的iOS设计指南

    非官方的iOS设计指南 有时候为iOS设计app并不是一件简单的事,但是如果你能找到正确的最新的苹果设备信息,并按照正确的方向,那么为iOS设计app或许会变得简单容易些. 关于这些指南 这些指南描述 ...

  5. 关于Windows Azure 地缘组(Affinity Groups)

    最近在和一些客户和朋友的沟通中,发现Windows Azure地缘组概念很少有了解.我的建议是使用地缘组来优化同一区域内的网络访问速度.如果我的说法有误,欢迎大家指正. 关于“地缘组”的概念(摘自MS ...

  6. C语言中返回字符串函数的四种实现方法 2015-05-17 15:00 23人阅读 评论(0) 收藏

    C语言中返回字符串函数的四种实现方法 分类: UNIX/LINUX C/C++ 2010-12-29 02:54 11954人阅读 评论(1) 收藏 举报 语言func存储 有四种方式: 1.使用堆空 ...

  7. webconfig文件serviceHostingEnvironment节点出错的解决方法

    在三点五和二版本的配置中可以出现这个节点,但是在4.0是没有的,所以如果框架是4.0的时候要除去这个节点,不然就会报以下错误: Configuration Error Description: An ...

  8. emWin(ucGUI)在PC机上模拟的按键响应多次解决办法 worldsing

    emWin(ucgui) 在PC端的模拟器,默认的按键机制是"按抬都Msg",当在按下键盘时,会收到一个key值-1,在按键没有离开时一直维持,当按键松开时还发送一个key值-0的 ...

  9. poj1061 青蛙的约会 扩展欧几里德的应用

    这个题解得改一下,开始接触数论,这道题目一开始是看了别人的思路做的,后来我又继续以这种方法去做题,发现很困难,学长告诉我先看书,把各种词的定义看懂了,再好好学习,我做了几道朴素的欧几里德,尽管是小学生 ...

  10. My集合框架第二弹 二叉树的实现

    package com.wpr.collection; import java.util.NoSuchElementException; public class BinarySearchTree&l ...