上一节我们分别使用IB和代码建立了两个视图并且熟悉了一些控件。这一节我们需要了解视图和视图的切换。

在iOS编程中,框架提供了很多视图,比如UIView,UIImageView, UIWebView等。

我们需要在视图控制器中来对视图进行控制。上一节我们建立的

TestMenuComponentViewController和TestComponentViewController就是视图控制器。这两个视图控制器需要如何交互呢?

有UINavagationViewController

首先,我们在AppDelegate.m中的didFinishLaunchingWithOptions函数中添加如下代码

    TestComponentViewController *compViewCtrl = [[TestComponentViewController alloc]init];

    UINavigationController *navViewCtrl = [[UINavigationController alloc]initWithRootViewController:compViewCtrl];     

    self.window.rootViewController = navViewCtrl;

默认UINavigationController的初始化控制器为compViewCtrl,然后设置程序的默认ViewController为navViewCtrl。

我们在按钮点击的时候进入下一个View,于是我们在TestComponentViewController的按钮点击事件中增加pushView到navCtroller中

代码如下:

-(IBAction)buttonClicked:(id)sender
{
_label.text = @"menuView has been pushed ";
[_button setTitle:@"Clicked" forState:UIControlStateNormal]; TestMenuComponentViewController *menuViewCtrl = [[TestMenuComponentViewController alloc]init];
[self.navigationController pushViewController:menuViewCtrl animated:YES];
}

运行效果如下:

这是最简单的使用 UINavigationController 来切换视图的例子,也可以使用 UITabBarController 来进行视图切换等,还可以自定义视图来切换。而且切换时还可以添加动画等。读者可以自己试试去实现这些代码。

以下为本文章视图切换的代码

http://115.com/lb/5lbfjyzh#
TeachingProject.zip

115网盘礼包码:5lbfjyzh

从零开始学iPhone开发(3)——视图及控制器的使用的更多相关文章

  1. 从零开始学iPhone开发(1)——工具的使用

    前提:已经具备了苹果电脑或者iMac,或者安装好了x86苹果而且已经联网. 苹果系统版本要求是:Max OS X Lion,或者 Mountain Lion 我们对iPhone进行使用的工具是XCod ...

  2. 从零开始学iPhone开发(4)——使用WebView

    转自 总结关于iPhone中UIWEBVIEW读取本地GBK编码格式html 关于webView读取本地GBK编码的html,尝试了两天,终于成功. 欢喜之余,把感想记下来.一般来说,不成都是人犯错, ...

  3. 从零开始学iPhone开发(5)——使用MapKit

    (转)Leonbao:MapKit学习笔记 1.概述插入MapView,设置Delegate(一般为Controller),Annotations记录兴趣位置点(AnnotationView用来显示兴 ...

  4. 从零开始学iPhone开发(2)——控件的使用

    这一节我们开始学习iOS中简单控件的使用. 在iOS编程中,简单的控件有很多,其中主要的用的多的有: UILabel,UIButton,UISegmentedControl, UITextField, ...

  5. 从零开始学IOS开发

    从今天开始开一个坑,由于业务变动,要开始学习IOS开发进行IOS app开发,其实鄙人本身就是一只菜鸟加大学狗,有过两年的C#,ASP.NET MVC,微信公众平台开发经验,一只在继续努力着,从大三下 ...

  6. 从零开始学ios开发(三):第一个有交互的app

    感谢大家的关注,也给我一份动力,让我继续前进.有了自己的家庭有了孩子,过着上有老下有小的生活,能够挤出点时间学习真的很难,每天弄好孩子睡觉已经是晚上10点左右了,然后再弄自己的事情,一转眼很快就到12 ...

  7. 从零开始学ios开发(二):Hello World!来啦!

    今天看了书的第二章,主要介绍了一下Xcode的使用方法和一些必要的说明,最后做了一个“Hello World!”的小程序,其实就是在屏幕上用一个Label显示“Hello World!”,一行代码都没 ...

  8. 从零开始学 iOS 开发的15条建议

    事情困难是事实,再困难的事还是要每天努力去做是更大的事实. 因为我是一路自学过来的,并且公认没什么天赋的前提下,进步得不算太慢,所以有很多打算从零开始的朋友会问我,该怎么学iOS开发.跟粉丝群的朋友交 ...

  9. 从零开始学ios开发(二):Hello World!

    今天看了书的第二章,主要介绍了一下Xcode的使用方法和一些必要的说明,最后做了一个“Hello World!”的小程序,其实就是在屏幕上用一个Label显示“Hello World!”,一行代码都没 ...

随机推荐

  1. windows7远程桌面连接unbuntu12.04

    参考:http://mawenjian.net/p/1221.html http://blog.csdn.net/chengfei112233/article/details/6623672 http ...

  2. javascript 与jquery为每个p标签增加onclick方法

    <script type="text/javascript"> window.onload=function(){ var items=document.getElem ...

  3. 【iCore3 双核心板_ uC/OS-III】例程二:任务的建立与删除

    实验指导书及代码包下载: http://pan.baidu.com/s/1bD7ulK iCore3 购买链接: https://item.taobao.com/item.htm?id=5242294 ...

  4. Task示例,多线程

    class Program { static void Main(string[] args) { Run(); } public static async void Run() { var task ...

  5. Java多线程 LockSupport

    在AQS里面进行阻塞线程,解除阻塞线程就用的LockSupport. JDK1.8源码: package java.util.concurrent.locks; import sun.misc.Uns ...

  6. 如何确定某个counter对应的rrd文件

    info.py #!/usr/bin/env python import requests import json import sys d = [ { "endpoint": s ...

  7. Python2.7的安装

    >登录python官网下载python2.7的相关版本 python官网链接 >根据平台选择相应的版本 >下载完毕后点击安装即可 >配置环境变量 >安装成功

  8. tcp protocol number

    在计算机网络OSI模型中,TCP端口完成第四层传输层所指定的功能.我们的电脑与网络连接的许多应用都是通过TCP端口实现的.本文与大家分享部分TCP端口的介绍. 21端口:21端口主要用于FTP(Fil ...

  9. 简明python教程 --C++程序员的视角(二):函数及作用域

    函数通过def关键字定义.def关键字后跟一个函数的标识符名称,然后跟一对圆括号.圆括号之中可以包括一些变量名,该行以冒号结尾.接下来是一块语句,它们是函数体. 函数的基本概念 1 位置:从左往右进行 ...

  10. 英文不好也能快速"记忆" API

    英文不好不要紧,把API函数导入打字练习类软件,即是练习打字速度,提高编程效率:也能短时间记忆API. 坚持每天打一遍,约2小时,连续打两周,会对API有很好的记忆,此方法是结合英文学习方法!以下是W ...