本文介绍了iPhone多视图开发的一个案例。基本上这就是一个项目的完成笔记,希望能和大家一起分享提高。
本文是iPhone多视图开发和WebService客户端技术实现的一个案例介绍。文中以一个简单的例子来说明iPhone多视图开发。
1.新建iPhone项目
打开XCode,新建IPhone项目,选择“window-based Application”模板,项目名称暂定为shouji138,效果如下图:
完成之后的界面如下图:
2.添加控制视图的ViewController类:SwitchViewController;
这里用一个ViewController来负责整个程序的视图跳转,这样控制起来就很方便了。
在XCode左边“Classes”上面点右键,“Add”->“New File...”,选择“Cocoa Touch Class”->“UIViewController subclass”,取名为SwitchViewController,如下图:
3.添加第一个视图的控制类FirstViewController
添加第一个视图控制类,命名为FirstViewController,方法同上,如下图:
4.添加第一个视图,FirstView.xib
添加视图文件,在Resources上面新建文件,选择“User Interface”->“View XIB”,输入名称“FirstView”,如下图:
5.连接好FirstView的对应关系
添加了视图控制类和XIB文件之后,需要将他们关联起来。方法如下:
双击新建的“FirstView.xib”文件,打开界面设计器,选择"FirstView.xib"的属性面板,选中“File's Owner”,如下图:
选中菜单“Tools”->“Inspector”,调出属性窗口,选中最后一个标签栏,在“Class”下,选中“FirstViewController”,如下图:
在第二个标签栏,选中“Outlets”下的view,用鼠标拖曳它到FirstView.xib属性窗口中的“View”上面,如下图:
6.在FirstView.xib上添加控件
选择菜单“Tools”->“Library”,调出控件库,拖一个Label和Button到设计窗口,效果如下图:
7.添加第二个视图:SecondViewController和SecondView.xib
如法炮制添加第二个视图,方法同上。
8.连接好SecondView的对应关系
如法炮制连接好ViewController和View。
9.在SecondView.xib添加控件
如法炮制添加好控件,如下图。
10.在控制类SwitchViewController添加代码,实现对2个视图的跳转。
在SwitchViewController.h中添加代码:
// // SwitchViewController.h // shouji138.com 手机主题 // // Created by administrator on 8/27/09. // Copyright 2009 __MyCompanyName__. All rights reserved. // #import @class FirstViewController; @class SecondViewController; @interface SwitchViewController : UIViewController { FirstViewController* firstviewcontroller; SecondViewController* secondviewcontroller; } @property (nonatomic,retain) FirstViewController* firstviewcontroller; @property (nonatomic,retain) SecondViewController* secondviewcontroller; -(void)initView; -(void)showFirstView; -(void)showSecondView; -(void)removeAllView; @end 说明一下: initView 方法用来程序加载时初始化view,showFirstView方法用来显示第一个view,showSecondView用来显示第二view。 在SwitchViewController.m中添加代码: // // SwitchViewController.m // shouji138.com 手机主题 // // Created by administrator on 8/27/09. // Copyright 2009 __MyCompanyName__. All rights reserved. // #import "SwitchViewController.h" #import "FirstViewController.h" #import "SecondViewController.h" @implementation SwitchViewController @synthesize firstviewcontroller; @synthesize secondviewcontroller; -(void)initView{ NSLog(@"ttt"); if(self.firstviewcontroller == nil){ self.firstviewcontroller = [[FirstViewController alloc]initWithNibName:@"FirstView" bundle:nil]; } [self removeAllView]; [self.view insertSubview:self.firstviewcontroller.view atIndex:0]; } -(void)showFirstView{ if(self.firstviewcontroller == nil){ self.firstviewcontroller = [[FirstViewController alloc]initWithNibName:@"FirstView" bundle:nil]; } [self removeAllView]; [self.view insertSubview:self.firstviewcontroller.view atIndex:0]; } -(void)showSecondView{ if(self.secondviewcontroller == nil){ self.secondviewcontroller = [[SecondViewController alloc]initWithNibName:@"SecondView" bundle:nil]; } [self removeAllView]; [self.view insertSubview:self.secondviewcontroller.view atIndex:0]; } -(void)removeAllView{ for(NSInteger i=0;i<[self.view.subviews count];i++){ [[self.view.subviews objectAtIndex:i] removeFromSuperview]; } } /* // The designated initializer. Override if you create the controller programmatically and want to perform customization that is not appropriate for viewDidLoad. - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) { // Custom initialization } return self; } */ /* // Implement loadView to create a view hierarchy programmatically, without using a nib. - (void)loadView { } */ /* // Implement viewDidLoad to do additional setup after loading the view, typically from a nib. - (void)viewDidLoad { [super viewDidLoad]; } */ /* // Override to allow orientations other than the default portrait orientation. - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { // Return YES for supported orientations return (interfaceOrientation == UIInterfaceOrientationPortrait); } */ - (void)didReceiveMemoryWarning { // Releases the view if it doesn't have a superview. [super didReceiveMemoryWarning]; // Release any cached data, images, etc that aren't in use. } - (void)viewDidUnload { // Release any retained subviews of the main view. // e.g. self.myOutlet = nil; } - (void)dealloc { [firstviewcontroller release]; [secondviewcontroller release]; [super dealloc]; } @end
11.修改shouji138AppDelegate代码
修改shouji138AppDelegate.h,代码如下:
// // shouji138AppDelegate.h // shouji138.com 手机主题 // // Created by administrator on 8/27/09. // Copyright __MyCompanyName__ 2009. All rights reserved. // #import @class SwitchViewController; @interface shouji138AppDelegate : NSObject { IBOutlet UIWindow *window; IBOutlet SwitchViewController *viewController; } @property (nonatomic, retain) UIWindow *window; @property (nonatomic, retain) SwitchViewController *viewController; +(shouji138AppDelegate *)App; @end 修改shouji138AppDelegate.m代码如下: // // shouji138AppDelegate.m // shouji138.com 手机主题下载 // // Created by administrator on 8/27/09. // Copyright __MyCompanyName__ 2009. All rights reserved. // #import "shouji138AppDelegate.h" #import "SwitchViewController.h" @implementation shouji138AppDelegate @synthesize window; @synthesize viewController; - (void)applicationDidFinishLaunching:(UIApplication *)application { // Override point for customization after application launch [window addSubview:viewController.view]; [viewController initView]; [window makeKeyAndVisible]; } +(shouji138AppDelegate *)App{ return (shouji138AppDelegate *)[[UIApplication sharedApplication]delegate]; } - (void)dealloc { [window release]; [viewController release]; [super dealloc]; } @end
其中:applicationDidFinishLaunching 方法中调用了SwitchViewController的initView方法,把第一个视图FirstView加载到了屏幕中,因此程序运行之后,我们看到的第一个页面是FirstView。
选择菜单“Build”->“Build”,进行编译,如果没有问题,应该可以编译通过。
12.在MainWindow.xib中连接好与SwitchViewController的对应关系。
这一步是非常重要的。
双击“MainWindow.xib”,调出“Interface Builder”;
从Library控件库中,拖动一个view Controller到“MainWindow.xib”窗口;
将这个添加的view Controller的Class设置为SwitchViewController;
选择“Shouji138 APP Delegate”,在“Outlets”->“viewController”中,拖曳一个连接线到“Switch View Controller”;
到此,完成了最重要的部分了,保存之后,点击“Build and Go”,应该会出现第一个页面。
13.添加FirstViewController和SecondViewController代码
修改FirstViewController.h如下:
// // FirstViewController.h // shouji138.com // // Created by administrator on 8/27/09. // Copyright 2009 __MyCompanyName__. All rights reserved. // #import @interface FirstViewController : UIViewController { } -(IBAction)buttonClick:(id)sender; @end 修改FirstViewController.m如下 // // FirstViewController.m // shouji138.com // // Created by administrator on 8/27/09. // Copyright 2009 __MyCompanyName__. All rights reserved. // #import "FirstViewController.h" #import "shouji138AppDelegate.h" #import "SwitchViewController.h" @implementation FirstViewController -(IBAction)buttonClick:(id)sender{ [[shouji138AppDelegate App].viewController showSecondView]; } ....中间省略..... - (void)dealloc { [super dealloc]; } @end 修改SecondViewController.h如下: // // SecondViewController.h // shouji138.com // // Created by administrator on 8/27/09. // Copyright 2009 __MyCompanyName__. All rights reserved. // #import @interface SecondViewController : UIViewController { } -(IBAction)buttonClick:(id)sender; @end 修改SecondViewController.m如下: // // SecondViewController.m // shouji138.com // // Created by administrator on 8/27/09. // Copyright 2009 __MyCompanyName__. All rights reserved. // #import "SecondViewController.h" #import "shouji138AppDelegate.h" #import "SwitchViewController.h" @implementation SecondViewController -(IBAction)buttonClick:(id)sender{ [[shouji138AppDelegate App].viewController showFirstView]; } ....中间省略..... - (void)dealloc { [super dealloc]; } @end
编译一下。
14.连接输出口
双击“FirstView.xib”,进入“Interface Builder”,选择“Show Second”按钮,选择“Button Connections”->“Events”->“Touch Up Inside”,拖出连接线到“File's Owner”,选择输出口“buttonClick”,效果如下图:
按照同样的设置,将SecondView.xib的“Show First”按钮事件连接到SecondViewController的buttonClick方法。
15.运行调试
点击“Build and Go”,在模拟器上出现第一个页面,点击“Show Second”按钮,跳转到第二个页面,点击“Show First”按钮,跳转到第一个页面。
您还没有登录,请您登录后再发表评论
### iPhone多视图开发案例详解 #### 一、引言 在进行iPhone应用程序开发时,多视图切换是一项重要的技术,对于用户体验有着直接的影响。本文将详细介绍如何在iPhone项目中实现多个视图间的平滑切换,并通过实际...
在iOS开发中,多视图切换是构建用户界面的关键部分,尤其在iPhone应用设计中,它使得用户能够方便地在不同的功能或数据集之间导航。本教程将专注于使用Objective-C或Swift实现iPhone上的多视图切换,特别是通过窗口...
在iOS开发中,多视图切换是构建用户界面的关键部分,尤其对于iPhone应用程序而言,它提供了丰富的用户体验。本文将深入探讨如何在iPhone应用中实现多视图切换,并提供相关的代码示例。 首先,理解基本的视图(View...
在"iPhone开发【十二】多视图技术总结之四:Segmented Control"这篇博文中,作者详细介绍了如何使用Segmented Control来控制多个视图的显示和隐藏,从而实现视图间的平滑过渡。 首先,我们需要在Interface Builder...
在iOS应用开发中,视图切换是用户界面交互的核心部分,尤其对于iPhone应用而言,顺畅的视图切换体验直接影响到用户的使用感受。本教程将深入探讨如何在iPhone应用中实现视图之间的平滑切换,主要关注`Push`操作,这...
【开发 iPhone 高级视图】教程主要涵盖了在iPhone应用程序开发中如何构建高效且用户体验良好的视图和表单。在这一教程中,作者Noel Rappin,一位Rails Development的副总裁,介绍了如何利用Ruby on Rails和Eclipse为...
"iPhone开发【十一】多视图技术总结之三:Page Control"这个主题聚焦于使用UIPageControl来实现滑动浏览多个页面的效果,这在许多应用中常见,如相册、教程或者轮播广告等。UIPageControl是iOS SDK中的一个控件,它...
在"iPhone开发【十】多视图技术总结之二:Navigation"中,博主可能详细讲解了以下几点: 1. **Navigation Bar**:导航控制器顶部的导航栏,显示了当前视图的标题,并且可以包含左侧和右侧的Bar Button Items,用于...
在iOS开发中,iPhone应用程序的用户体验往往离不开各种视图(View)之间的切换效果。这些效果不仅提升了用户界面的美观度,还能提供更好的交互体验。本文将深入探讨“iPhone各种视图切换效果”,并结合源码分析,...
在iOS应用开发中,表视图(UITableView)是不可或缺的一部分,尤其在iPhone应用设计中扮演着重要角色。它提供了一种高效、灵活的方式来展示大量结构化的数据,如联系人列表、菜单选项或日历事件。本篇文章将深入探讨...
### iPhone开发之窗口和视图 #### 一、引言 在iPhone应用程序开发过程中,窗口和视图扮演着至关重要的角色。它们不仅是构建用户界面的基础元素,还是与用户交互的关键通道。本文旨在深入探讨窗口和视图的概念及其...
本文将深入探讨"iPhone开发【八】多视图技术总结之一:ModalView(模态视图)"这一主题,旨在帮助开发者更好地理解和运用模态视图在实际项目中的应用。 首先,模态视图(Modal View)是一种在当前视图之上显示一个...
在iOS开发中,创建一个带有多个视图的iPhone应用程序是一个常见的需求,这通常涉及到界面的交互性和用户体验的设计。本教程将深入讲解如何在iPhone应用中使用工具栏(Toolbar)来实现简单的多视图切换,这对于初学者...
### 最新iPhone应用程序开发全教程知识点总结 #### 一、教程基本信息 - **书名**:《最新 iPhone 应用程序开发全教程》 - **英文名称**:Beginning iPhone 3 Development Exploring the iPhone SDK - **作者**:...
根据提供的文件信息,本文将对“iPhone开发实战”这一主题进行深入探讨,涵盖iPhone应用开发的基础概念、开发环境搭建、关键技术点以及实际案例分析等方面。 ### 一、iPhone开发概述 #### 1.1 iPhone应用开发简介 ...
《Iphone开发基础教程》第六章 多视图应用程序
导航控制器(Navigation Controller)和标签栏控制器(Tab Bar Controller)就是典型的容器视图控制器,它们提供了内置的导航和切换机制,简化了多视图管理的复杂度。 3. **模态视图控制器**(Modal View ...
《iPhone SDK3 开发指南 源代码》 在iOS应用开发的世界中,Apple的iPhone SDK(Software Development Kit)扮演着至关重要的角色。SDK3,是Apple为开发者提供的第三个主要版本,它带来了许多新功能、改进和优化,...
在iOS应用开发中,表视图(UITableView)是不可或缺的一部分,尤其在iPhone开发中更是频繁使用。本教程的第八章“表视图简介(二)”深入探讨了如何利用表视图来构建用户界面,提供了丰富的实践案例。下面将详细阐述...
相关推荐
### iPhone多视图开发案例详解 #### 一、引言 在进行iPhone应用程序开发时,多视图切换是一项重要的技术,对于用户体验有着直接的影响。本文将详细介绍如何在iPhone项目中实现多个视图间的平滑切换,并通过实际...
在iOS开发中,多视图切换是构建用户界面的关键部分,尤其在iPhone应用设计中,它使得用户能够方便地在不同的功能或数据集之间导航。本教程将专注于使用Objective-C或Swift实现iPhone上的多视图切换,特别是通过窗口...
在iOS开发中,多视图切换是构建用户界面的关键部分,尤其对于iPhone应用程序而言,它提供了丰富的用户体验。本文将深入探讨如何在iPhone应用中实现多视图切换,并提供相关的代码示例。 首先,理解基本的视图(View...
在"iPhone开发【十二】多视图技术总结之四:Segmented Control"这篇博文中,作者详细介绍了如何使用Segmented Control来控制多个视图的显示和隐藏,从而实现视图间的平滑过渡。 首先,我们需要在Interface Builder...
在iOS应用开发中,视图切换是用户界面交互的核心部分,尤其对于iPhone应用而言,顺畅的视图切换体验直接影响到用户的使用感受。本教程将深入探讨如何在iPhone应用中实现视图之间的平滑切换,主要关注`Push`操作,这...
【开发 iPhone 高级视图】教程主要涵盖了在iPhone应用程序开发中如何构建高效且用户体验良好的视图和表单。在这一教程中,作者Noel Rappin,一位Rails Development的副总裁,介绍了如何利用Ruby on Rails和Eclipse为...
"iPhone开发【十一】多视图技术总结之三:Page Control"这个主题聚焦于使用UIPageControl来实现滑动浏览多个页面的效果,这在许多应用中常见,如相册、教程或者轮播广告等。UIPageControl是iOS SDK中的一个控件,它...
在"iPhone开发【十】多视图技术总结之二:Navigation"中,博主可能详细讲解了以下几点: 1. **Navigation Bar**:导航控制器顶部的导航栏,显示了当前视图的标题,并且可以包含左侧和右侧的Bar Button Items,用于...
在iOS开发中,iPhone应用程序的用户体验往往离不开各种视图(View)之间的切换效果。这些效果不仅提升了用户界面的美观度,还能提供更好的交互体验。本文将深入探讨“iPhone各种视图切换效果”,并结合源码分析,...
在iOS应用开发中,表视图(UITableView)是不可或缺的一部分,尤其在iPhone应用设计中扮演着重要角色。它提供了一种高效、灵活的方式来展示大量结构化的数据,如联系人列表、菜单选项或日历事件。本篇文章将深入探讨...
### iPhone开发之窗口和视图 #### 一、引言 在iPhone应用程序开发过程中,窗口和视图扮演着至关重要的角色。它们不仅是构建用户界面的基础元素,还是与用户交互的关键通道。本文旨在深入探讨窗口和视图的概念及其...
本文将深入探讨"iPhone开发【八】多视图技术总结之一:ModalView(模态视图)"这一主题,旨在帮助开发者更好地理解和运用模态视图在实际项目中的应用。 首先,模态视图(Modal View)是一种在当前视图之上显示一个...
在iOS开发中,创建一个带有多个视图的iPhone应用程序是一个常见的需求,这通常涉及到界面的交互性和用户体验的设计。本教程将深入讲解如何在iPhone应用中使用工具栏(Toolbar)来实现简单的多视图切换,这对于初学者...
### 最新iPhone应用程序开发全教程知识点总结 #### 一、教程基本信息 - **书名**:《最新 iPhone 应用程序开发全教程》 - **英文名称**:Beginning iPhone 3 Development Exploring the iPhone SDK - **作者**:...
根据提供的文件信息,本文将对“iPhone开发实战”这一主题进行深入探讨,涵盖iPhone应用开发的基础概念、开发环境搭建、关键技术点以及实际案例分析等方面。 ### 一、iPhone开发概述 #### 1.1 iPhone应用开发简介 ...
《Iphone开发基础教程》第六章 多视图应用程序
导航控制器(Navigation Controller)和标签栏控制器(Tab Bar Controller)就是典型的容器视图控制器,它们提供了内置的导航和切换机制,简化了多视图管理的复杂度。 3. **模态视图控制器**(Modal View ...
《iPhone SDK3 开发指南 源代码》 在iOS应用开发的世界中,Apple的iPhone SDK(Software Development Kit)扮演着至关重要的角色。SDK3,是Apple为开发者提供的第三个主要版本,它带来了许多新功能、改进和优化,...
在iOS应用开发中,表视图(UITableView)是不可或缺的一部分,尤其在iPhone开发中更是频繁使用。本教程的第八章“表视图简介(二)”深入探讨了如何利用表视图来构建用户界面,提供了丰富的实践案例。下面将详细阐述...