Iphone开发(三)按钮的响应控制

来源:网络 责任编辑:栏目编辑 发表时间:2013-07-02 01:26 点击:

上次我们介绍了helloWorld的实现原理,其中大部分代码都是项目模板自动生成的,今天我们来在研究一下如何在Iphone应用中添加按钮和按钮的监听,首先新建一个项目:

  \

 

然后在自动生成的文件中打开xib文件并进行如下操作,拖一个label,两个button,并将内容分别发为如图所示:

  \


 

现在我们就要用到一个新概念了,那就是输出口和行为,输出口的关键字是IBOutlet,这只是一个单纯的关键字,但是在xcode开发中,使用该关键字声明的变量可以和xib文件中画出来的控件相联系,有点儿类似于android开发中的findViewById,行为的关键字是:IBAction.该关键字用来修饰方法,使用该关键字修饰的方法可以和xib文件中的控件的各种事件绑定,使用IBAction修饰的自定义方法会有一个参数sender,可以用来传递xib中控件的一些属性,比如标题或者什么的。好了,看代码,我们先在viewController.h中用IBOutlet声明一下label和两个button,以及用IBAction修饰的响应方法。

viewController.h:

  \

 

左边的小圆圈表示可以和xib文件中的控件相连,但是是空心的,说明还未连接。下面我们在viewController.m中将其实现:

viewCotroller.m:


[plain] #import "ViewController.h" 
 
@interface ViewController () 
 
@end 
 
@implementation ViewController 
@synthesize label; 
@synthesize bu1; 
@synthesize bu2; 
-(IBAction)click:(id)sender 

    label.text=[sender titleForState:UIControlStateNormal];//1 

- (void)viewDidLoad 

    [super viewDidLoad]; 
    // Do any additional setup after loading the view, typically from a nib. 

 
- (void)viewDidUnload 

    [super viewDidUnload]; 
    // Release any retained subviews of the main view. 

 
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 

    return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown); 

 
@end 
#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController
@synthesize label;
@synthesize bu1;
@synthesize bu2;
-(IBAction)click:(id)sender
{
    label.text=[sender titleForState:UIControlStateNormal];//1
}
- (void)viewDidLoad
{
    [super viewDidLoad];
 // Do any additional setup after loading the view, typically from a nib.
}

- (void)viewDidUnload
{
    [super viewDidUnload];
    // Release any retained subviews of the main view.
}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);
}

@end代码1中的sender是指触发该方法的控件,titleForState是取出该控件的title,在正常状态下,因为button等控件是有正常状态,按下状态等区别的。取出title后将其赋给label,这样就可以实现点击不同的button来改变label的内容了。

另外,xib文件和viewController类的实例是通过interfaceBuilder来连接的,interfaceBuilder构建的xib文件中会有一个File's Owner,其实就是指的viewController类的实例,通过viewController实例来控件数据和视图。好了,下面需要把view和viewController联系起来了,方法

    相关新闻>>

      发表评论
      请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
      用户名: 验证码:点击我更换图片
      最新评论 更多>>

      推荐热点

      • Lexical or Preprocessor Issue 'xxx.h
      • ios学习笔记(二)xcode 4.3.2下实现基本交互
      • ios版本的helloworld
      • iphone(object-c) 内存管理(3) 有效的内存管理 前半部分
      • ios学习笔记(一)xcode 4.3.2下创建第一个ios项目
      • IOS类似iphone通讯录TableView的完整demo【附源码】
      • UITableView一些方法
      • [iPhone中级]iPhone团购信息客户端的开发 (二)
      • iphone(object-c)内存管理(1)
      网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
      Copyright © 2008-2015 计算机技术学习交流网. 版权所有

      豫ICP备11007008号-1