在图形界面编程时,解决的第一问题就是如何将静态界面与代码关联起来,或者说是代码如何与界面上的对象

通信, 代码如何操作界面上的对象。在iPhone平台上,引入了IBOutlet与IBAction。通过在变量前增加IBOutlet

来说明该变量将与界面上的某个UI对象对应,在方法前增加IBAction来说明该方法将与界面上的事件对应.

下面通过一个连接网络服务器(NetworkConnection)的例子来说明IBOutlet与IBAction。

界面上有host 与 port 的Text Field UI对象,一个Button对象。

所以代码中需要定义两个IBOutlet变量,分别用来定义host与port; 一个IBAction方法,用来发起连接动作。

在NetworkConnectionViewController.h文件中:

定义变量:

@interface NetworkConnectionViewController : UIViewController {
    UITextField *host;
    UITextField *port;
}

将这两个变量说明为IBOutlet变量:

@property(nonatomic, retain) IBOutlet UITextField *host;
@property(nonatomic, retain) IBOutlet UITextField *port;

在NetworkConnectionViewController.m文件中增加:

@synthesize host;
@synthesize port;

打开NetworkConnectionViewController.xib文件,拖两个Text Field对象到上面。

按住Ctrl键,拖拽File's Owner到Text Field之上,会弹出Outlets选择列表,在列表中可以看到host与port。

分别为两个Text Field选择Outlet变量。这样做了以后,界面上的Text Field对象就与程序中定义的变量就关联起来,

当改变变量的属性时,就会显现在界面上。

为了检验变量是否与界面对象关联,在viewDidLoad方法中给变量付值然后编译运行。

- (void)viewDidLoad
{
    [super viewDidLoad];
    host.text = @"192.168.1.100";
    port.text = @"8080";
}

运行后,可以在界面的Text Field中看到这些值,说明变量与界面对象关联正确。从而就可以在界面中看到变量的值。

在NetworkConnectionViewController.h文件中增加一个IBAction方法:

-(IBAction)connectNetwork;

在NetworkConnectionViewController.m文件中实现该方法:

-(IBAction)connectNetwork

UIAlertView *alter =
[[UIAlertView alloc] initWithTitle: @"Connection Network" message:
@"sending command to the server" delegate: self cancelButtonTitle: @"OK"
otherButtonTitles: nil];
    
    [alter show];
    [alter release];

//connect network

//............

打开NetworkConnectionViewController.xib,拖一个Round Rect Button到上面。
然后按住Ctrl键,拖拽该button到File's Owner上,在弹出的IBAction列表中

选择connectNetwork。这样当该button被按下弹起后就会调用connectNetwork方法。

IBOutlet与IBAction是iPhone应用开发的基础,是成功迈向iPhone平台应用开发的第一步。

iPhone应用程序开发基础之一: IBOutlet与IBAction的更多相关文章

  1. 微信小程序开发基础

    前言: 微信小程序开入入门,如果你有html+css+javascript的基础,那么你就很快地上手掌握的.下面提供微信小程序官方地址:https://developers.weixin.qq.com ...

  2. 小程序开发基础-swiper 滑块视图容器

    小编 / 达叔小生 参考官方文档:https://developers.weixin.qq.com/miniprogram/dev/component/ 小程序开发基础-swiper 滑块视图容器 根 ...

  3. 小程序开发基础-scroll-view 可滚动视图区域

    小编 / 达叔小生 小程序开发基础-scroll-view 可滚动视图区域 这里只展示纵向滚动,横向同理就不用说明了,可自己尝试,横向滚动属性为scroll-x,把纵向滚动改为横向滚动即可. scro ...

  4. Android开发-API指南-应用程序开发基础

    Application Fundamentals 英文原文:http://developer.android.com/guide/components/fundamentals.html 采集(更新) ...

  5. 20155305 2016-2017-2 《Java程序设计》实验四 Android程序开发基础

    实验四 Android开发基础 实验内容 基于Android Studio开发简单的Android应用并部署测试; 了解Android.组件.布局管理器的使用: 掌握Android中事件处理机制 实验 ...

  6. 第一章 Web应用程序开发基础

    一.HTTP协议工作机制 HTTP协议(HyperText Transfer Protocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传送协议.它是一种主流B/S架构中应用的通信 ...

  7. 小程序开发-基础组件icon/text/progress入门

    小程序的基础组件--基础内容 基础内容分为三大组件: 1. icon--图标 index.wxml <view class="group"> <block wx: ...

  8. 微信小程序开发基础知识总结

    微信小程序在无论在功能.文档及相关支持方面,都是优于前面几种微信账号类型,它提供了很多原生程序才有的接口,使得我们的小程序在很多方面突破H5页面应用的限制,更加接近原生程序的功能,因此微信小程序具有很 ...

  9. [转]程序开发基础学习二(C++ Google Style 命名规则)

    无规矩不成方圆,新的岗位就需要服从团队的编码规则.很开心团队用的是Google的C++编码规则,大概看了下Google 的编码规则,正如九天翔雁说的:“Google的 C++ Style Guide远 ...

随机推荐

  1. winsock2获取网页

    #define WIN32_LEAN_AND_MEAN#include <winsock2.h>#include <stdlib.h>#include <stdio.h& ...

  2. [LeetCode]题解(python):066-Plus One

    题目来源: https://leetcode.com/problems/plus-one/ 题意分析: 给定一个数组,将数加一,返回新的数组.比如[9,9],返回[1,0,0]. 题目思路: 这道题目 ...

  3. 我的Python成长之路---第五天---Python基础(17)---2016年1月30日(晴)

    常用模块 1.模块介绍 模块,用一砣代码实现了某个功能的代码集合. 模块分为三种 自定义模块 内置标准模块(又称标准库) 开源模块 2.常用模块 time模块 time.time() import t ...

  4. 深入select_related与prefetch_related函数

    阅读博客http://blog.jobbole.com/74881/的笔记 在数据库有外键的时候,使用select_related()和prefetch_related()可以很好的减少数据库请求的次 ...

  5. Javascript-one

    今天,学习Javascript第一天,学习了一些基本的概念,下面就对今天所学的知识进行一个整理,回顾吧! 首先,将Javascript代码包含在(X)html文档中,主要的方法是使用<scrip ...

  6. RBAC - 基于角色的权限控制

    ThinkPHP中关于RBAC使用详解 自己的源码下载:百度网盘,thinkPHP文件夹下,RBAC文件夹. 重要的是,权限信息的写入函数等.在源码中能找到,Modules/Amin/Common/c ...

  7. ZOJ 2856 Happy Life 暴力求解

    因为是Special Judge 的题目,只要输出正确答案即可,不唯一 暴力力求解, 只要每次改变 happiness 值为负的人的符号即可. 如果计算出当前人的 happiness 值为负,那么将其 ...

  8. django 新闻编辑笔记

    url(r'^news_manage/edit/$',views.news_edit,name='edit') url配置 <a href="/management/news_mana ...

  9. Oracle Dedicated server 和 Shared server(专用模式 和 共享模式) 说明(转)

    一.  官网说明 在DBCA 建库的时候,有提示让我们选择连接类型,这里有两种类型:专用服务器模式和共享服务器模式.默认使用专用模式.如下图: Oracle 官方文档对这两种文档的说明如下: Abou ...

  10. 九度OnlineJudge之1022:游船出租

    题目描述:     现有公园游船租赁处请你编写一个租船管理系统.当游客租船时,管理员输入船号并按下S键,系统开始计时:当游客还船时,管理员输入船号并按下E键,系统结束计时.船号为不超过100的正整数. ...