iPhone应用程序开发基础之一: IBOutlet与IBAction
在图形界面编程时,解决的第一问题就是如何将静态界面与代码关联起来,或者说是代码如何与界面上的对象
通信, 代码如何操作界面上的对象。在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的更多相关文章
- 微信小程序开发基础
前言: 微信小程序开入入门,如果你有html+css+javascript的基础,那么你就很快地上手掌握的.下面提供微信小程序官方地址:https://developers.weixin.qq.com ...
- 小程序开发基础-swiper 滑块视图容器
小编 / 达叔小生 参考官方文档:https://developers.weixin.qq.com/miniprogram/dev/component/ 小程序开发基础-swiper 滑块视图容器 根 ...
- 小程序开发基础-scroll-view 可滚动视图区域
小编 / 达叔小生 小程序开发基础-scroll-view 可滚动视图区域 这里只展示纵向滚动,横向同理就不用说明了,可自己尝试,横向滚动属性为scroll-x,把纵向滚动改为横向滚动即可. scro ...
- Android开发-API指南-应用程序开发基础
Application Fundamentals 英文原文:http://developer.android.com/guide/components/fundamentals.html 采集(更新) ...
- 20155305 2016-2017-2 《Java程序设计》实验四 Android程序开发基础
实验四 Android开发基础 实验内容 基于Android Studio开发简单的Android应用并部署测试; 了解Android.组件.布局管理器的使用: 掌握Android中事件处理机制 实验 ...
- 第一章 Web应用程序开发基础
一.HTTP协议工作机制 HTTP协议(HyperText Transfer Protocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传送协议.它是一种主流B/S架构中应用的通信 ...
- 小程序开发-基础组件icon/text/progress入门
小程序的基础组件--基础内容 基础内容分为三大组件: 1. icon--图标 index.wxml <view class="group"> <block wx: ...
- 微信小程序开发基础知识总结
微信小程序在无论在功能.文档及相关支持方面,都是优于前面几种微信账号类型,它提供了很多原生程序才有的接口,使得我们的小程序在很多方面突破H5页面应用的限制,更加接近原生程序的功能,因此微信小程序具有很 ...
- [转]程序开发基础学习二(C++ Google Style 命名规则)
无规矩不成方圆,新的岗位就需要服从团队的编码规则.很开心团队用的是Google的C++编码规则,大概看了下Google 的编码规则,正如九天翔雁说的:“Google的 C++ Style Guide远 ...
随机推荐
- 通过代码...CGRectmake 创建的控件如何自适应屏幕。
[[UIScreen mainScreen] bounds].size.width [[UIScreen mainScreen] bounds].size.height 得到屏幕的宽高,然后将变量写入 ...
- FPGA知识大梳理(二)verilogHDL语法入门(1)
此文是写给0基础学习者,也是对自己知识点总结水平的考验. 对于有C基础的人来说,学习verilog应该是轻而易举 —— 类比法学习. 第一步:格式. 对于C来说我们前面会写 ‘include“std ...
- 解决ASP.NET回传后div滚动条位置复位的问题
中心思想:用一个隐藏控件保存当前scorll值.回传回来后根据scrollTop的值,然后在Page_Load中重新设置scrollTop. 首先是为DIV添加一个 onscroll="ja ...
- Mac上使用Visual Studio Code开发/调试.NET Core代码
Mac上使用Visual Studio Code开发/调试.NET Core代码 .Net Core 1.0终于发布了,Core的一大卖点就是跨平台.这个跨平台不只是跨平台运行,而且可以跨平台开发.今 ...
- KMP算法与一个经典概率问题
考虑一个事件,它有两种概率均等的结果.比如掷硬币,出现正面和反面的机会是相等的.现在我们希望知道,如果我不断抛掷硬币,需要多长时间才能得到一个特定的序列. 序列一:反面.正面.反面序列二:反面.正面. ...
- BZOJ 1613: [Usaco2007 Jan]Running贝茜的晨练计划
题目 1613: [Usaco2007 Jan]Running贝茜的晨练计划 Time Limit: 5 Sec Memory Limit: 64 MB Description 奶牛们打算通过锻炼来 ...
- poj 2021 Relative Relatives(暴力)
题目链接:http://poj.org/problem?id=2021 思路分析:由于数据较小,采用O(N^2)的暴力算法,算出所有后代的年龄,再排序输出. 代码分析: #include <io ...
- 2013 ACM/ICPC Asia Regional Chengdu Online---1003
哈哈哈 #include <iostream> #include <cstring> #include <string> #include <cstdio&g ...
- PHP学习笔记6-时间/日期
时区/时间/日期 输出unix时间戳(从格林威治时间1970年01月01日00时00分00秒起至现在的总秒数),用time() echo time();//unix时间戳 输出结果:143557475 ...
- java--偏向锁
Java偏向锁(Biased Locking)是Java 6引入的一项多线程优化.它通过消除资源无竞争情况下的同步原语,进一步提高了程序的运行性能. 轻量级锁也是一种多线程优化,它与偏向锁的区别在于, ...