从零开始iOS8编程【UI设计之按钮加强版的HelloWold】

郝萌主倾心贡献,尊重作者的劳动成果,请勿转载。

如果文章对您有所帮助,欢迎给作者捐赠,支持郝萌主,捐赠数额随意,重在心意^_^ 

我要捐赠: 点击捐赠

Cocos2d-X源码下载:点我传送


加强版Hello World

实现步骤
1.创建HelloHaoMengZhu工程
在Xcode中创建HelloHaoMengZhu工程, 基于iPhone视图基础应用程序
iPhone OS ->Application ->Single View Application

2.修改HelloHaoMengZhuViewController.h
我们需要UITextField控件接受文字和响应一个按钮点击事件, 
所以在h文件中我们要定义一个UITextField属性和一个响应事件方法

3.修改HelloHaoMengZhuViewController.m
实现txtField属性
实现-(IBAction)onClickButton:(id)sender方法

4.使用IB设计页面, 摆放控件
打开Main.storyboard文件;
打开Library将控件拖入设计窗口 

5.连接输出口
为了将控件属性通过屏幕“输入” 或“输出” 我们需要定义“输出口” , 
在控制器中我们已经定义了与这个数据对应的属性
@property nonatomicretainIBOutlet
UITextField *txtField;
UITextField用于展示输出和输入数据。 
在iPhone(包括Mac)开发时候控件属性要通过定义输出口才能在屏幕中使用的

在IB中,点击鼠标右键,拖动New Referencing Outlet连线到File’s Owner。
设计区TextField控件并选择属性txtField。 
其中File’s Owner代表控制器类

6.处理事件
为了响应控件的事件, 我们需要在控制器中定义一个事件处理方法
-(IBAction)onClickButton:(id)sender;
在iPhone(包括Mac)开发控件事件处理要自己编写对应方法, 
并在IB中将控件的事件与该方法连接起来

在IB中, 用鼠标右键拖到Button控件到File’s Owner,选择发送事件。
其中File’s Owner代表控制器类

7、编译运行
点击按钮在输入框里出现“Hello HaoMengZhu.”



MVC设计模式
MVC是一种设计模式,上面的例子就使用了MVC的设计模式。
所谓设计模式就是解决某一特定问题的方案
MVC是解决具有UI的应用系统的成熟解决方案
在Cocoa应用系统中严格按照该模式实现
M-Model(模型) 是应用系统中与视图对于部分的数据
V -View(视图) 是应用系统中用户看到并与之交互的界面
C-Controller(控制器) 是应用系统中起到控制器作用接受用户事件显示数据等等,与视图进行交互等

Cocoa MVC
采用 MVC 设计模式意味着, Interface Builder 不需要编写或生成任何代码, 
您只需专注于应用程序的视图。 
Mac 的 Cocoa 绑定消除了大部分的黏合代码, 
它就像连接在 Xcode 编写的控制器和Interface Builder 设计的视图之间的一条线, 
用图形化的表示方法简化了二者之间的关系
Interface Builder 和 Cocoa 可以快速开发地您的应用程序





视图控制器的方法
主要包括:
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:
(NSBundle *)nibBundleOrNil
- (void)loadView
- (void)viewDidLoad
- (void)didReceiveMemoryWarning
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
- (void)viewDidUnload
- (void)dealloc

下面我们一一详解:
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
如果视图使用NIB文件创建, 在加载视图之前调用这个方法, 做一些初始化处理

- (void)loadView
视图加载时候调用的方法一般不使用NIB文件创建视图时候使用, 而是通过代码创建视图对象

- (void)viewDidLoad视图加载之后调用方法, 我们常常在这个方法中做视图初始化出来

- (void)didReceiveMemoryWarning
当系统内存告警的时候, 调用的方法, 我们一般在该方法释放一些耗费资源的对象

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
用于处理屏幕旋转的方法

- (void)viewDidUnload
视图对象卸载的时候调用的方法,一般在把内存视图中属性设置为nil的
示例:
- ( void) viewDidUnload {
selftxtField nil;
}

- (void)dealloc
视图对象内存释放时候调用方法, 在该方法中先要释放成员变量
示例:
- ( void) dealloc {
[txtField release];
[super dealloc];
}


输出口和动作
输出口( Outlet) , 为了实现控制器在视图上输入输出结果, 需要定义输出口 
动作( Action) , 为了实现视图控制器响应视图事件, 需要定义动作

输出口(Outlet) 
定义输出口 , 是在ViewController定义一个控件属性, 
如下
h文件:
@interface Hello_WorldViewController :
UIViewController {
UITextField *txtField;
}
@property (nonatomic, retain) IBOutlet
UITextField *txtField;
m文件:
@synthesize txtField;

动作(Action) 
定义动作, 是在ViewController定义一个方法, 
如下
h文件:
-(IBAction)onClickButton:(id)sender;
m文件:
-(IBAction)onClickButton:(id)sender {
txtField.text = @"Hello World.";
}

动作( Action) 是在控件器中的方法, 但它的返回类型必须是IBAction声明的, 该关键字告诉IB
此方法是个Action, 可以被某个事件触发。

郝萌主倾心贡献,尊重作者的劳动成果,请勿转载。

如果文章对您有所帮助,欢迎给作者捐赠,支持郝萌主,捐赠数额随意,重在心意^_^ 

我要捐赠: 点击捐赠

Cocos2d-X源码下载:点我传送


郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。