【iOS 初见】第一个简单的 iOS 应用
本实例来自 《iOS编程(第4版)》,介绍如何编写一个简单的 iOS 应用。
功能为:在视图中显示一个问题,用户点击视图下方的按钮,可以显示相应的答案,用户点击上方的按钮,则会显示一个新的问题。
步骤如下:
1.创建一个新的Xcode项目 Hello_iOS,具体看下图:

2.新建一个视图控制器类文件 QAViewController ,注意看下图:

3.选取QAViewController.xib 文件,从对象库中拖拽4个Label 、2个 Button 如下图摆放。

4.为对象创建关联。首先,修改QAViewController.m 文件如下:
#import "QAViewController.h" @interface QAViewController () //声明插座变量
@property (nonatomic,weak) IBOutlet UILabel *questionLabel;
@property (nonatomic,weak) IBOutlet UILabel *answerLabel; @end @implementation QAViewController @end
5.设置声明的插座变量,如下图所示:

6.重新打开QAViewController.m 文件,声明两个按钮的动作方法:
@implementation QAViewController -(IBAction)showQuestion:(id)sender
{ } -(IBAction)showAnswer:(id)sender
{ } @end
7.接着要关联声明的动作方法,设置目标和动作(按住Control并拖拽或按住右键拖拽至File's Owner):

8.以上完成了此应用的XIB文件,创建并设置了应用所需的视图对象,并为视图对象和控制器对象创建了所有必需的管理。下面就需要开始创建模型对象。在项目导航面板中选择 QAViewController.m 文件,修改代码如下:
//
// QAViewController.m
// Hello_iOS
//
// Created by YeChao on 15/12/5.
// Copyright (c) 2015年 Luka.Ye. All rights reserved.
// #import "QAViewController.h" @interface QAViewController () //声明插座变量
@property (nonatomic,weak) IBOutlet UILabel *questionLabel;
@property (nonatomic,weak) IBOutlet UILabel *answerLabel; //声明一个整形对象和两个数组对象
//整形变量用于跟踪用户正在回答的问题
@property (nonatomic) int currentQuestionIndex;
//两个数组用于存储一系列问题和答案
@property (nonatomic,copy) NSArray *questions;
@property (nonatomic,copy) NSArray *answers; @end @implementation QAViewController -(instancetype) initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
//调用父类实现的初始化方法
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; if (self) {
//创建两个数组对象,存储所需的问题和答案
//同时,将 questions和 answers分别指向问题数组和答案数组
self.questions = @[@"你叫什么名字?",@"你觉得你帅吗?",@"今年是哪一年?",@"明明可以靠脸吃饭,为何要靠才华?"];
self.answers = @[@"可以叫我叶小超。",@"还行吧。",@"公元2015年",@"这是和明明的差距,要努力啊。"];
} //返回新对象的地址
return self;
} -(IBAction)showQuestion:(id)sender
{
//进入下一个问题
self.currentQuestionIndex++; //是否已经回答完了所有问题?
if (self.currentQuestionIndex==[self.questions count]) {
//回到第一个问题
self.currentQuestionIndex =;
} //根据正在回答的问题序号从数组中取出问题字符串
NSString *question = self.questions[self.currentQuestionIndex];
//将问题字符串显示在标签上
self.questionLabel.text = question;
//重置答案字符串
self.answerLabel.text = @""; } -(IBAction)showAnswer:(id)sender
{
//当前问题的答案是什么?
NSString *answer = self.answers[self.currentQuestionIndex];
//在答案标签上显示相应的答案
self.answerLabel.text = answer;
} @end
9.如果现在运行项目,将只能看到一个空白的屏幕,无法看到在 QAViewController.xib 文件中创建的用户界面。为了在屏幕上显示用户界面,必须将视图控制器和应用中的另一个控制器关联——AppDelegate 。
在项目导航面板中选择 AppDelegate.m 文件。在 application didFinishLaunchingWithOptions:方法中创建 QAViewController 对象,并将它设置为 UIWindow 对象的根视图控制器。
#import "AppDelegate.h"
#import "QAViewController.h" - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; //在这里添加应用启动后的初始化代码
QAViewController *qaVC = [[QAViewController alloc] init];
self.window.rootViewController = qaVC; self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
return YES;
}
10.按住 command+R 运行项目,效果如下:

11.没有设置应用图标的话,会是一块白板。应用图标是一张图片,用于在主屏幕上指代应用。不同设备对图标的尺寸要求也不同。

12.设置应用图标:选中项目导航面板中的 Images.xcassets 条目,如下图从Finder拖拽至AppIcon区域的设置块上。

13.重新运行项目就可以了。

【iOS 初见】第一个简单的 iOS 应用的更多相关文章
- iOS开发之WKWebView简单使用
iOS开发之WKWebView简单使用 iOS开发之 WKWebVeiw使用 想用UIWebVeiw做的,但是突然想起来在iOS8中出了一个新的WKWebView,算是UIWebVeiw的升级版. ...
- 一步一步拆解一个简单的iOS轮播图(三图)
导言(可以不看): 不吹不黑,也许是东半球最简单的iOS轮播图拆分注释(讲解不敢当)了(tree new bee).(一句话包含两个人,你能猜到有谁吗?提示:一个在卖手机,一个最近在卖书)哈哈... ...
- iOS开发网络篇—简单介绍ASI框架的使用
iOS开发网络篇—简单介绍ASI框架的使用 说明:本文主要介绍网络编程中常用框架ASI的简单使用. 一.ASI简单介绍 ASI:全称是ASIHTTPRequest,外号“HTTP终结者”,功能十分强大 ...
- iOS狂暴之路---iOS的第一个应用中能学到哪些知识
一.前文回顾 在之前已经介绍了 iOS的学习路线图,因为中间遇到一些Android开发问题,所以就耽搁了一段时间,那么接下来的这段时间我们将继续开始iOS的狂暴之路学习,按照国际惯例,第一个应用当然是 ...
- iOS开发UI篇—简单的浏览器查看程序
iOS开发UI篇—简单的浏览器查看程序 一.程序实现要求 1.要求 2. 界面分析 (1) 需要读取或修改属性的控件需要设置属性 序号标签 图片 图片描述 左边按钮 右边按钮 (2) 需要监听响应事件 ...
- iOS开发UI篇—简单介绍静态单元格的使用
iOS开发UI篇—简单介绍静态单元格的使用 一.实现效果与说明 说明:观察上面的展示效果,可以发现整个界面是由一个tableview来展示的,上面的数据都是固定的,且几乎不会改变. 要完成上面的效果, ...
- Xamarin iOS编写第一个应用程序创建工程
Xamarin iOS编写第一个应用程序创建工程 在Xcode以及Xamarin安装好后,就可以在Xamarin Studio中编写程序了.本节将主要讲解在Xamarin Studio中如何进行工程的 ...
- iOS开发Swift篇—简单介绍
iOS开发Swift篇—简单介绍 一.简介 Swift是苹果于2014年WWDC(苹果开发者大会)发布的全新编程语言 Swift在天朝译为“雨燕”,是它的LOGO 是一只燕子,跟Objective-C ...
- 李洪强iOS开发之- 实现简单的弹窗
李洪强iOS开发之- 实现简单的弹窗 实现的效果: 112222222222223333333333333333
随机推荐
- FL2440驱动添加(1):hello world 驱动模块添加
试试第一个hello world模块添加: 1,在添加drivers/char/hello.c /*************************************************** ...
- [moka学习笔记]yii2设置语言和时区
1.在web/index.php中 (new yii\web\Application($config))->run(); $app = new \yii\web\Application($con ...
- jquery重置html form
很多时候在ajax提交或者对话框隐藏之后,我们希望重置默认值以便下次打开对话框时保持干净. 因为jquery选择器返回的是list,并且没有对此提供reset方法,所以需要针对单个元素进行reset. ...
- maven nexus deploy方式以及相关注意事项
以前公司都是配管负责管理jar的,现在没有专职配管了,得自己部署到deploy上供使用.总的来说,jar部署到nexus上有两种方式: 1.直接登录nexus控制台进行上传,如下: 但是,某些仓库可能 ...
- 使用openssl创建自签名证书及部署到IIS教程
概要 本文讲解三个部分:1. 创建自签名证书2. 创建自己的证书颁发机构3. 以及如何配置IIS 创建自签名证书 首先,创建一个私钥文件: openssl genrsa -out myselfsign ...
- 详解;(function ($,window,document,undefined){...})(jQuery,window,document);
1.代码最前面的分号,可以防止多个文件压缩合并以为其他文件最后一行语句没加分号,而引起合并后语法错误. 2.匿名函数(function(){})();:由于Javascript执行表达式是从圆括号里面 ...
- 安卓开发_浅谈Android动画(一)
动画效果,针对图片实现 现在学习四种基本的简单动画效果 一.Tween Animation共同属性 1.Duration:动画持续时间(毫秒单位) 2.fillAfter:设置为true,动画转化在动 ...
- iOS 自动布局详细介绍
1. 自动布局的理解 iOS自动布局很有用,可以在不同size的屏幕上运行,原先看的头痛,还是习惯用最蠢的[UIScreen mainScreen].bounds.size.width等来布局,后来实 ...
- C安全问题与指针误用
欢迎关注我的个人博客:www.wuyudong.com, 更多精彩文章与您分享 指针的声明与初始化 1.不恰当的指针声明 考虑如下的声明: int* ptr1, ptr2; // ptr1为指针,pt ...
- Android 6.0权限管理
Android 6.0权限管理 关于权限管理 Android6.0 发布之后,Android 的权限系统被重新设计.在 23 之前 App 的权限只会在用户安装的时候询问一次,App一旦安装后就可以使 ...