`
lovebirdegg
  • 浏览: 171477 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

《iPhone应用程序开发指南(基础篇)》第六章 6.2(2)

阅读更多
原文地址:http://www.aisidechina.com/blog/

《iPhone应用程序开发指南(基础篇)》第六章 6.2(2)
By Roy 艾思德丛书 No Comments » 版权所有:AisideChina

本博客将在今后陆续进行本书的连载,敬请关注!
更多内容请大家购买正版《iPhone应用程序开发指南(基础篇)》



2.在MyButtonViewController.h和MyButtonViewController.m文件中添加程序代码

        选中MyButtonViewController.h文件,在里面定义一个UILabel类型的输出口myLabel和一个buttonClick操作方法。具体代码如下所示:

===================================================

代码6.1 MyButtonViewController.h文件

#import <UIKit/UIKit.h>          

@interface MyButtonViewController : UIViewController {     

         IBOutlet UILabel *myLabel;

}

@property (nonatomic, retain) IBOutlet UILabel *myLabel;

- (IBAction) buttonClick;

@end

==================================================

        在 MyButtonViewController.h文件中,我们首先在   处用IBOutlet关键字声明一个UILabel类型的输出口;在   处用property通知编译器编译时如何创建该类的成员;在   处用IBAction关键字声明了一个按钮单击时的操作方法;关于IBOutlet和IBAction问题我们稍后将进行讲解。

        接下来,选中MyButtonViewController.m文件,实现定义的buttonClick操作方法。它用来实现单击按钮时在标签上显示“Hello iPhone”的功能,具体代码如下所示:

===================================================

代码6.2 MyButtonViewController.m文件

#import “MyButtonViewController.h”

@implementation MyButtonViewController

@synthesize myLabel;

- (IBAction)buttonClick {

         myLabel.text=@”Hello iPhone”;

         //[self.myLabel setText:@"Hello iPhone "];

}

- (void)dealloc {

         [myLabel release];

    [super dealloc];

}

@end

====================================================

        在MyButtonViewController.m文件中,首先在   处用synthesize关键字说明编译器该如何设置这个成员变量;接着在buttonClick操作方法中,这里使用了两种方法显示字符串:在   处是通过设置标签text属性的方法来实现的,而   处是通过调用setText:方法来实现,两种方法具有相同的效果。每当程序结束时都要调用   处的dealloc方法,它是用来释放对象所占的内存资源。

        至此,程序代码编写工作完成了。接下来的工作就是构建程序界面。

3.构建程序界面

        本程序的界面比较简单,只需要添加一个标签和一个按钮。具体步骤如下 :

(1)        展开Resources文件夹,双击MyButtonViewController.xib文件,进入Interface Builder中,如图6-11所示,从左到右分别表示Xib窗口、View窗口和Inspector窗口。

 
 
 


(2)        选择ToolsÚLibrary(或使用快捷键z+Shift+L),打开Library窗口(如图6-12所示),并从Library窗口中拖出一个Label控件和Round Rect Button控件到View窗口中(如果当前没有显示View,可以双击Xib窗口中的View图标)。调整Label大小,将Button的标题设为“Click Me”。这样用户界面就创建好了。



4.为控件连接输出口和操作方法

        在为控件连接输出口和操作方法之前,我们先来运行一下程序。点击Xcode中Build and Go图标(或使用快捷键z+R)运行程序,弹出iPhone模拟器,点击Click Me按钮,并没有出现我们希望的效果。为什么会这样呢?这就是程序中存在IBOutlet和IBAction的缘故。

        IBOutlet经常被称为输出口,可以理解为程序中用来动态输出数据的对象。它主要用于头文件(.h文件)中声明一个实例变量。例如:要声明一个 UILabel类型的实例变量myLabel,只需在头文件中添加如下代码:

IBOutlet UILabel *myLabel;

        它用来传递一个消息给Interface Builder:该实例变量需要与Xib文件中的某个控件进行连接(这个工作需要手动完成),从而实现在程序中对相应控件进行控制,可以认为它是一个需要与Interface Builder进行连接的标识。因而,请记住一点:如果你创建的实例变量需要与Xib文件中的某个对象关联起来,就必须使用IBOutlet。

        IBAction用来声明一些实现与用户交互的方法。这些方法需要和Interface Builder中的控件的相关事件进行连接。使用IBAction声明的方法,没有返回值,只是用来执行一些操作。例如:声明一个按钮点击方法,需要在头文件中添加以下代码:

- (IBAction) buttonClick:(id)sender;



- (IBAction) buttonClick;

        如上所示,可以声明带参数或者不带参数的方法,参数名通常指定为sender,即事件的发送者。相应地,参数类型通常被定义为id类型。

Tips:

在程序中,如果我们希望获取控件相关属性的值,如获取按钮的标题,可以声明为带参数的操作方法;如果控件本身只是作为事件的发起者,与本身属性无关,可以声明为不带参数的操作方法。
 

        现在你一定明白,程序为什么没有达到预期的效果了,因为我们没有为标签连接输出口,也没有为按钮制定操作方法。下面就来完成这些工作。选中MyButtonViewController.xib窗口中的File’s Owner图标,同时按住鼠标右键,拖动鼠标到View中的Label上,在移动过程中将出现一根沿着我们移动方向的蓝色引导线,如图6-13所示。



        释放鼠标右键,此时会出现如图6-14所示的Outlets选项框,里面有一个我们之前定义的输出口实例变量myLabel,选中它就可以了.



 

        接下来要完成另外一个连接:为按钮的单击事件指定buttonClick操作方法。选中View窗口下的Click Me按钮,同时按下鼠标右键,拖动鼠标到Xib窗口中的File’s Owner图标上,注意,这次移动方向和连接输出口时相反;释放鼠标右键,此时会出现如图6-15所示的Events(事件)选项框,同样里面有我们定义的buttonClick方法,选中它就可以了。

 



Tips除了上述连接操作方法的方式以外,我们还可以使用快捷键z+2调出Connections窗口,在Events层级下选择Touch Up Inside事件,连接到File’s Owner图标;同时在弹出的Events选项框下选择相应的操作方法即可。 
 

5.编译并运行

        至此,这个小程序才算真正的完成了,现在再次运行一下看看效果。点击Xcode中的Build and Go图标,运行iPhone模拟器,当我们点击Click Me按钮时,将在标签上显示“Hello iPhone”,效果如图6-6所示。

关于其他控件的使用,请参照《iPhone应用程序开发指南(基础篇)》本章节讲解。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics