Xcode4.3实现多视图转换
最近读书上的例子,发现例子有点老,xcode发生了变化,所以写一篇视图切换的帖子,给自己做个参考.
话不多说,让我们开始把!
实现思路:
这里我们实现两个视图之间的切换.
1. 我们需要两个视图(xib文件 - FirstView.xib SecondView.xib)
2. 我们需要三个视图控制类FirstViewController, SecondViewController, SwitchViewController
这里我们为什么需要三个视图控制类呢?
FirstView -- FirstViewController
SecondView -- SecondViewController
SwitchViewController -- 转换 -- [ FirstView < - - > SencondView ]
代码实现:
一. 搭建项目 ---
1. 打开xcode File -- > New... --> project -- >
选择 Empty Application (xcode 3 是 Window-base Application).
然后点击下一步,为project起个名字,为changeViewTest
这里这三个不要选.
到这里,我们的项目初步就搭建好了.
---------- 二. 创造视图与视图类 --------
1.在项目包下,右键 --- new --- New File --- 左面选择User interface

选View
2. 下一步,在Device Family 选在iphone
3. 下一步,起名叫FirstView
生成的FirstView.xib就是相应的文件了
接下来我们用同样的方法,创建SecondView.xib;
4. 在每 *View.xib里添加控件,我这里分别为两个view添加一个button,label控件. 如图.

5. 现在我们们对应FirstView.xib和SecondView.xib分别创建视图类FirstViewController和SecondViewController.

6. 创建FirstViewController类继承自UIViewController.
创建SecondViewController类继承自UIViewController.

7. 创建完之后如图:

8. 把视图与视图类关联起来.
[FirstView – FirstViewController ]
9. 把视图与视图类关联起来.
选择FirstView.xib,然后选择File’s Owner,然后在属性选择器里,把Custom Class写成FirstViewController. 如图:


10. 把当前的视图的View与outlets关联.
左键点击view拉直线

完事后,我们就把视图和视图类关联到一起了.
11.添加控制ViewController的类:SwitchViewController
在控制类SwitchViewController添加代码,实现对2个视图的跳转。

说明: initView 方法用来程序加载时初始化view,showFirstView方法用来显示第一个view,showSecondView用来显示第二view

接下图:

--------- 三. 委托类,激活SwitchViewController的控制功能 --------
1.选中AppDelegate.h. 添加代码如下:

2. 接下来在AppDelegate.m中实现:
+ (AppDelegate *) App {
return (AppDelegate *) [[UIApplication sharedApplication] delegate];
}
3. 把swicthViewnController设置为window的rootViewController,以便操作视图.

----- 最后,实现FirstViewController与SecondViewController的视图切换 ----
1. 在FirstViewController中添加IBAction,实现按钮的切换动作,如下:
- (IBAction) buttonClick: (id) sender {
[[AppDelegate App].switchViewController showSecondView];
}

2. 在SecondViewController中添加IBAction,实现按钮的切换动作,如下:

(前提是你要把AppDelegate导入到项目中)
最后: 运行程序如图:

![Description: C:\Users\XY\AppData\Roaming\Windows Live Writer\PostSupportingFiles\f3074982-045c-44ae-9bf0-8e3f562150c3\image{0}_thumb[1].png](https://images.cnblogs.com/cnblogs_com/gnface/201209/201209011704494697.png)
![Description: C:\Users\XY\AppData\Roaming\Windows Live Writer\PostSupportingFiles\f3074982-045c-44ae-9bf0-8e3f562150c3\4@~W8F%6)39XDJCR[[0G2Q3_thumb[2].jpg](https://images.cnblogs.com/cnblogs_com/gnface/201209/201209011704519483.jpg)
![Description: C:\Users\XY\AppData\Roaming\Windows Live Writer\PostSupportingFiles\f3074982-045c-44ae-9bf0-8e3f562150c3\image{0}_thumb[13].png](https://images.cnblogs.com/cnblogs_com/gnface/201209/201209011704547582.png)
浙公网安备 33010602011771号