本实例来自 《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 应用的更多相关文章

  1. iOS开发之WKWebView简单使用

    iOS开发之WKWebView简单使用   iOS开发之 WKWebVeiw使用 想用UIWebVeiw做的,但是突然想起来在iOS8中出了一个新的WKWebView,算是UIWebVeiw的升级版. ...

  2. 一步一步拆解一个简单的iOS轮播图(三图)

    导言(可以不看): 不吹不黑,也许是东半球最简单的iOS轮播图拆分注释(讲解不敢当)了(tree new bee).(一句话包含两个人,你能猜到有谁吗?提示:一个在卖手机,一个最近在卖书)哈哈... ...

  3. iOS开发网络篇—简单介绍ASI框架的使用

    iOS开发网络篇—简单介绍ASI框架的使用 说明:本文主要介绍网络编程中常用框架ASI的简单使用. 一.ASI简单介绍 ASI:全称是ASIHTTPRequest,外号“HTTP终结者”,功能十分强大 ...

  4. iOS狂暴之路---iOS的第一个应用中能学到哪些知识

    一.前文回顾 在之前已经介绍了 iOS的学习路线图,因为中间遇到一些Android开发问题,所以就耽搁了一段时间,那么接下来的这段时间我们将继续开始iOS的狂暴之路学习,按照国际惯例,第一个应用当然是 ...

  5. iOS开发UI篇—简单的浏览器查看程序

    iOS开发UI篇—简单的浏览器查看程序 一.程序实现要求 1.要求 2. 界面分析 (1) 需要读取或修改属性的控件需要设置属性 序号标签 图片 图片描述 左边按钮 右边按钮 (2) 需要监听响应事件 ...

  6. iOS开发UI篇—简单介绍静态单元格的使用

    iOS开发UI篇—简单介绍静态单元格的使用 一.实现效果与说明 说明:观察上面的展示效果,可以发现整个界面是由一个tableview来展示的,上面的数据都是固定的,且几乎不会改变. 要完成上面的效果, ...

  7. Xamarin iOS编写第一个应用程序创建工程

    Xamarin iOS编写第一个应用程序创建工程 在Xcode以及Xamarin安装好后,就可以在Xamarin Studio中编写程序了.本节将主要讲解在Xamarin Studio中如何进行工程的 ...

  8. iOS开发Swift篇—简单介绍

    iOS开发Swift篇—简单介绍 一.简介 Swift是苹果于2014年WWDC(苹果开发者大会)发布的全新编程语言 Swift在天朝译为“雨燕”,是它的LOGO 是一只燕子,跟Objective-C ...

  9. 李洪强iOS开发之- 实现简单的弹窗

     李洪强iOS开发之- 实现简单的弹窗 实现的效果:  112222222222223333333333333333

随机推荐

  1. 【Android】Android SDK Manager更新慢/失败的问题

    前言:更新下载Intel x86 Atom_64 System Image的时候总是失败,速度只有几KB,我这是10M的网啊. 最后找到一篇日志,解决了这个问题.非常感谢!其参考地址:http://w ...

  2. mysql创建数据库指定编码

    GBK: create database test2 DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci; UTF8: CREATE DATABASE ` ...

  3. 【JavaEE】SSH+Spring Security基础上配置AOP+log4j

    Spring Oauth2大多数情况下还是用不到的,主要使用的还是Spring+SpringMVC+Hibernate,有时候加上SpringSecurity,因此,本文及以后的文章的example中 ...

  4. 1、Flat UI Getting started(文档翻译)

    下载链接:http://www.bootcss.com/p/flat-ui/ 一.什么是Flat UI? Flat UI 是一种漂亮的Boostrap主题.我们重新设计了它的很多组件,使得其看起来扁平 ...

  5. [js开源组件开发]图片懒加载lazyload

    图片懒加载lazyload 前端对请求的一种优化方式,为什么叫懒加载,无从查起,反正我当初一直认为它是滚动加载的一种类型.它主要是以图片或背景在可视区域内时才显示真正的图片,减少src带来的负荷.所以 ...

  6. datepicker冲突

    公司里的项目由于发展较快,很多东西都没有好好梳理一下,以至于有很多的潜在的问题. 最近就遇到了一个比较坑的问题.datepicker 有两个插件库中的datepicker插件比较有名.一个是jQuer ...

  7. HTML 块元素

    分为3类 1. 结构块 只能包含块级元素.它们包含结构含义,但没有语义含义,也就是,不能说明内容是什么,只能说明其组织方式. <ol> <ul> <dl> < ...

  8. C++调用C#dll类库中的方法(非显性COM)

    一般在网上搜C++如何调用C#的函数,出来的结果都是做成COM组件,但是这种方法dll安装麻烦,需要注册COM组件,需要管理员权限,调试麻烦,经常需要重启机器,反正有诸多不便. 然后在看<CLR ...

  9. 存放事务码及其描述的TABLE是TSTC、TSTCT。

    存放事务码及其描述的TABLE是TSTC.TSTCT.

  10. Sharepoint学习笔记—习题系列--70-573习题解析 -(Q32-Q34)

    Question 32You create a custom Web Part.You need to ensure that a custom property is visible in Edit ...