企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
#### 加强版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 ( nonatomic, retain) IBOutlet UITextField *txtField; UITextField用于展示输出和输入数据。  在iPhone(包括Mac)开发时候控件属性要通过定义输出口才能在屏幕中使用的。 在IB中,点击鼠标右键,拖动New Referencing Outlet连线到File’s Owner。 设计区TextField控件并选择属性txtField。  其中File’s Owner代表控制器类。 ![](https://box.kancloud.cn/2016-01-06_568cf5c974476.jpg) 6.处理事件 为了响应控件的事件, 我们需要在控制器中定义一个事件处理方法: -(IBAction)onClickButton:(id)sender; 在iPhone(包括Mac)开发控件事件处理要自己编写对应方法,  并在IB中将控件的事件与该方法连接起来。 在IB中, 用鼠标右键拖到Button控件到File’s Owner,选择发送事件。 其中File’s Owner代表控制器类。 ![](https://box.kancloud.cn/2016-01-06_568cf5c995d63.jpg) 7、编译运行 点击按钮在输入框里出现“Hello HaoMengZhu.” ![](https://box.kancloud.cn/2016-01-06_568cf5c9b8bea.jpg) #### 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 可以快速开发地您的应用程序。 ![](https://box.kancloud.cn/2016-01-06_568cf5c9e6368.jpg) ![](https://box.kancloud.cn/2016-01-06_568cf5ca08039.jpg)![](https://box.kancloud.cn/2016-01-06_568cf5ca2030f.jpg) #### 视图控制器的方法 主要包括: ~~~ - (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 { self. txtField = 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, 可以被某个事件触发。