学习IOS几天了,跟着教程做了两个小应用了,现在先来总结一下。今天就是创建视图和绑带到代码了。其实就是常见的MVC模式实现。

使用的Xcode版本是8.2。

在Xcode创建项目之后,默认就会创建一个Main.stroyborad,程序的入口也就是这里,可以在GeneralDeployment Info里的Main Interface修改入口storyboard为其他的。

在项目的目录中还能看见自动创建的ViewController类,其实就是一个ViewController对应一个界面。控件库中自带了几个ViewController,新建项目时,Single View Application 就是创建一个空白的ViewController。Tabbed Application就是创建一个Tab Bar Controller。

在MVC模式中

* M -- 数据模型
* V -- View 对应这里的storyboard上的界面
* C -- Controller 对应这里的ViewController类
  • 通过storyboard,我们设计界面,然后通过制定界面控件和ViewController类的关系,达到View和Controller绑定。
  • 通过storyboard,还可以设计界面间的跳转segue
  • 上图中的ViewController就是整个storyboard的root view controller

创建好摆放控件界面之后,就可以开始摆放控件和将控件遇ViewController绑定了

1 摆放控件

将控件从控件库,拖动到界面上就ok。

2 设置控件样式

选中控件,在右侧的inspector面板里选择button的类型、状态、标题、文字颜色、文字大小等属性

3 将控件与controller绑定

选中控件,在右侧的connection inspector面板中,可以看见button的连接属性

  • Triggered Segues 这个action连接到一个界面时,点击button就将调转到连接的界面
  • Outlet Collections button将作为一个属性集合的一员
  • Sent Events 当button的不同点击事件触发时,连接到上面的方法就被触发
  • Refrencing Outlets button作为一个类的属性,一般就是button所在界面的ViewController类的属性

button可以作为类属性的同时,将自己的事件与类的方法绑定;也可制作为属性,或者只绑定事件。

4 开始操作

有2种方式,可以进行绑定

  • 1 在controller类里定义属性和方法,再手动绑定

    • 1

        button的属性: @property(nonatomic,weak)IBOutlet UIButton* button;
      button的事件: - (IBAction)clickButton:(id)sender;
    • 2 在button的connection inspector面板中,将属性或事件绑定到button属性和clickButton方法上

    • 3 绑定之后,就能属性是和View Controller绑定的;touch up side 事件是和View Controller里的clickButton方法绑定的

  • 2 自动绑定,好安逸。选中button所在的布局,然后点击Xcode右上角的assistan editor。确保是在ViewController.h文件,如果不是可以在顶部切换到。接着鼠标按着button + Ctrl,往interface区中拖,按图那样操作,就能实现绑定。

经过上述的操作之后,我们就能点击界面中间的button,做些事情了。

最终控制器里的代码,加一句点击button就修改button的文字。

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController

@property (weak, nonatomic) IBOutlet UIButton *button;

- (IBAction)clickButton:(id)sender;

@end

#import "ViewController.h"

@interface ViewController ()
@end

@implementation ViewController

- (void)viewDidLoad {
[super viewDidLoad];
} - (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
} - (IBAction)clickButton:(id)sender {
//修改button文字
[self.button setTitle:@"clicked!" forState:UIControlStateNormal];
} @end

以上就是在storyboard里绑定Button和控制器的方法,其他控件也类似。

小生入门,有何不对之处,还望指出。_

IOS入门之创建视图和控件绑定的更多相关文章

  1. 学习方法和阶段介绍 、 iOS界面开发引入 、 构造第一个App 、 视图控制器和视图 、 控件与事件 、 InterfaceBuilder

    1 创建并运行第一个App 1.1 问题 使用Xcode创建一个App项目,该应用实现功能在界面上显示Hello World标签,在模拟器中的运行结果如图-1所示: 图-1 1.2 方案 分析图-1, ...

  2. iOS开发UI篇—手写控件,frame,center和bounds属性

    iOS开发UI基础—手写控件,frame,center和bounds属性 一.手写控件 1.手写控件的步骤 (1)使用相应的控件类创建控件对象 (2)设置该控件的各种属性 (3)添加控件到视图中 (4 ...

  3. iOS开发UI基础—手写控件,frame,center和bounds属性

    iOS开发UI基础—手写控件,frame,center和bounds属性 一.手写控件 1.手写控件的步骤 (1)使用相应的控件类创建控件对象 (2)设置该控件的各种属性 (3)添加控件到视图中 (4 ...

  4. iOS开发基础篇-手写控件

    一.手写控件的步骤 1)使用相应的控件类创建控件对象: 2)设置该控件的各种属性: 3)添加空间到视图中: 4)如果是 UIButton 等控件,还需考虑控件的单击事件等: 二.添加 UIButton ...

  5. 创建 WPF 工具箱控件

    创建 WPF 工具箱控件 WPF (Windows Presentation Framework) 工具箱控件模板允许您创建 WPF 控件,会自动添加到 工具箱 安装扩展的安装. 本主题演示如何使用模 ...

  6. 用swift创建各种UI控件【iSwifting社区】

    为了方便大家学习,www.iSwifting.com社区为大家准备了创建各种UI控件的代码.開始看着语法可能有些别扭,当用习惯了,就认为还是非常不错的. 社区还添加了问答专区.有问题的朋友.虽然问.大 ...

  7. UWP入门(四)--设置控件样式

    原文:UWP入门(四)--设置控件样式 官方定义:可以使用 XAML 框架通过多种方式自定义应用的外观. 通过样式可以设置控件属性,并重复使用这些设置,以便保持多个控件具有一致的外观. 可分享至不同e ...

  8. 使用前端开发工具包WijmoJS - 创建自定义DropDownTree控件(包含源代码)

    概述 最近,有客户向我们请求开发一个前端下拉控件,需求是显示了一个列表,其中包含可由用户单独选择的项目控件,该控件将在下拉列表中显示多选TreeView(树形图). 如今WijmoJS已经实现了该控件 ...

  9. 通过WinForm控件创建的WPF控件无法输入的问题

    今天把写的一个WPF程序发布到别的机器上执行,发现一个比较奇怪的问题:在那个机器上用英文输入法无法输入数字,非要切换到中文输入法才行:但在我的机器上却是好好的. 最开始以为是输入法的问题,弄了好一阵子 ...

随机推荐

  1. SpringMVC(一) HelloWorld

    学习新东西的的第一个程序--HelloWorld,以下是SpringMVC的HelloWorld 第一步: 用MAVEN 创建webapp,并添加依赖.(强烈建议使用MAVEN,MAVEN学习书籍和视 ...

  2. 洛谷P2678 跳石头

    简简单单二分答案,n和m不要写反 Code: #include<cstdio> #include<algorithm> using namespace std; const i ...

  3. Android 将Android项目打包成aar文件

    参考资料:https://blog.csdn.net/csdn_mm/article/details/78364444

  4. python与图灵机器人交互(ITCHAT版本)

    #!/usr/bin/env python#-*- coding:utf-8 -*- @Author : wujf @Time:2018/9/5 17:42import requestsimport ...

  5. Project Euler 21 Distinct primes factors( 整数因子和 )

    题意: 记d(n)为n的所有真因数(小于n且整除n的正整数)之和. 如果d(a) = b且d(b) = a,且a ≠ b,那么a和b构成一个亲和数对,a和b被称为亲和数. 例如,220的真因数包括1. ...

  6. 记Spring搭建功能完整的个人博客「Oyster」全过程[其二] Idea中Maven+SpringBoot多模块项目开发的设计和各种坑(模块间依赖和打包问题)

    大家好嘞,今天闲着没事干开写写博客,记录一下Maven+SpringBoot的多模块设计和遇到的坑. 多模块设计 简单说明一下截止目前的需求: 需要RESTful API:对文章.标签.分类和评论等的 ...

  7. nyoj212-k尾相等数

    212-K尾相等数 内存限制:64MB时间限制:3000msSpecial Judge: No accepted:0submit:0 题目描述: 输入一个自然数K(K>1),如果存在自然数M和N ...

  8. nyoj124-中位数

    中位数 时间限制:3000 ms  |  内存限制:65535 KB 难度:2 描述 一组数据按从小到大的顺序依次排列,处在中间位置的一个数叫做中位数. 比如 1 5 10 11 9  其中位数就是9 ...

  9. [GSS5] Can you answer these queries V

    大力讨论. luogu上交spoj的题卡的一比... 难受 wa了好几次,原因大概首先求的是非空区间,不能乱和0取max,第二点是求无相交的解时,在两段求lmx和rmx的时候可以取max(0). 区间 ...

  10. FreeMarker 语法 访问 pojo 的属性

    一.java 代码 @Test public void testFreeMarker() throws Exception { //1.创建一个模板文件 //2.创建一个Configuration对象 ...