要求:1、从基于Xcode空项目模板开始
实现方法分析
1、根据MVC模式,iphone的程序都是有 view-model-controller 组成的。所以,在两个页面就是两个视图控制器和其管理的View。因此:
第一页定义为:cityViewController
第二页定义为:CityDetailViewController
导航控制器在这两个视图控制器之间切换!工程项目名称为:lvyou
2、开发步骤:
第一步:创建一个工程项目。项目名称:lvyou、基于空模板(Windows-based Application)
第二步:创建cityViewController视图控制器。
>>请选择File > New File。在New File窗口中,请选择Cocoa Touch Classes,然后选择UIViewController-subclass。同时,请勾选Options区域中标题为With XIB for userinterface的选择框。为文件起个名字,本例视图控制器名称为cityViewController,(类名称习惯以一个大写字母开头)。请务必创建.m和.h文件,并将二者都添加到工程。此时,系统已经生成三个文件(*.h、*.m、*.xib), 实际实现了四项任务:
1)系统为你创建了一个视图控制器(名叫File’sOwner对象),类名为cityViewController
2)系统也为你创建了一个视图view(点*.xib上打开)
3)在视图控制器类上,系统也为你定义了一个输出口IBOulet变量view
4)这个变量(输出口IBOulet变量view)已经关联了视图view
第三步:同样方法创建CityDetailViewController
>>请选择File > New File。在New File窗口中,请选择Cocoa Touch Classes,然后选择UIViewController-subclass。同时,请勾选Options区域中标题为With XIB for userinterface的选择框。为文件起个名字,视图控制器名称为CityDetailViewController
第四步:添加(注册)一个导航控制器。
(注册cityViewController是第一个要显示视图控制器)只能用代码方法!(当然,如果你创建工程项目时选择“基于导航的应用”。就会为你自动创建一个名为RootViewController的根视图控制器,并自动生成了一些代码,比如把导航控制器的视图放到窗口的视图内)
方法:在lvyouAppDelegate.h上声明(添加)一个UINavigationController类对象
//lvyouAppDelegate.h原代码开始
#import <UIKit/UIKit.h>
@interface lvyouAppDelegate :NSObject <UIApplicationDelegate> {
}
@property (nonatomic,retain) IBOutlet UIWindow *window;
@end
//lvyouAppDelegate.h原代码结束
//lvyouAppDelegate.m原代码开始
#import "lvyouAppDelegate.h"
#import "cityViewController.h"//此处要加上
#import "MeiShiTianDi.h"
@implementation lvyouAppDelegate
@synthesize window;
#pragma mark-
#pragma markApplication lifecycle
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOp
//因为系统已经实现了返回功能。Style是显示风格
}
- (void)applicationWillResignAct
}
- (void)applicationDidEnterBackg
}
- (void)applicationWillEnterFore
}
- (void)applicationDidBecomeActi
}
- (void)applicationWillTerminate
}
#pragma mark-
#pragma mark Memorymanagement
- (void)applicationDidReceiveMem
}
- (void)dealloc {
}
@end
//lvyouAppDelegate.m原代码结束
第五步:设计完善cityViewController视图控制器。
首先在cityViewController.xib上添加一个按钮,修改按钮标题为“北京”。在cityViewController.h中声明一个方法selectCity。将按钮与方法建立连接!
//cityViewController.h原代码开始
#import <UIKit/UIKit.h>
@interface cityViewController : UIViewController{
- (IBAction)selectCity : (id)sender;//自定义一个方法,点击“北京”按钮,进入下一页
@end
//cityViewController.h原代码结束
//cityViewController.m原代码开始
#import "cityViewController.h"
#import "CityDetailViewController
@implementation cityViewController
//实现自定义的方法(函数)
-(IBAction) selectCity : (id)sender{
[self.navigationController pushViewController:cityDetailContrl animated:YES];
}
// Implement viewDidLoad to do additional setup after loadingthe view, typically from a nib.
- (void)viewDidLoad {
//创建一个有边框的文体按钮,按下后,调用视图控制器上的discount方法
UIBarButtonItem *discountButton =[[UIBarButtonItem alloc]
}
- (void)didReceiveMemoryWarning {
}
- (void)viewDidUnload {
}
- (void)dealloc {
}
@end
//cityViewController.m原代码结束
第六步:设计完善CityDetailViewController
首先在CityDetailViewController
//CityDetailViewController
#import <UIKit/UIKit.h>
@interface CityDetailViewController
}
@property (copy) NSString *city; //创建一个属性set/get方法
@end
//CityDetailViewController
//CityDetailViewController
#import "CityDetailViewController
@implementation CityDetailViewController
@synthesize city; //属性city变量
// Implement viewDidLoad to do additional setup after loadingthe view, typically from a nib.
- (void)viewDidLoad {
self.navigationItem.rightBarButtonItem= rightButton;
}
- (void)didReceiveMemoryWarning {
}
- (void)viewDidUnload {
}
- (void)dealloc {
}
@end
//CityDetailViewController