iphone用UINavigationController实现在两个页之间导航(下)(3)
iPhone OS的标签栏最多可显示五个标签
当你选择某一个视图控制器时,该视图控制器就执行。当你选择另一个视图控制器时,当前视图控制器的状态被保留。非常类似微软中的多窗口的概念。
关系: 平等关系 上、下级之间关系
标签栏控制器
UITabBarController
导航控制器
(旅游信息)
一般视图控制器
cityViewController
一般视图控制器
CityDetailViewController
一般视图控制器
(美食天地)
MeiShiTianDi
下面我们将创建一个标签栏控制器,如上表,它有两个标签“旅游信息”和“美食天地”。“旅游信息”由于前面已经完成,它管理着两个视图控制器(cityViewController、 CityDetailViewController),因此,下面重点讲解未完成的工件。
1、项目的委托AppDelegate声明注册一个标签控制器、初始化后放到主窗口Window下
首先:因为项目名称仍然是lvyou,所以要在项目.h中(lvyouAppDelegate.h)声明一个标签控制器:
[plain]
//lvyouAppDelegate.h原代码开始
#import <UIKit/UIKit.h>
@interface lvyouAppDelegate : NSObject <UIApplicationDelegate> {
UIWindow *window;
UINavigationController *navController;//此行新加,对应的实现文件.m上必须要有代码!
UITabBarController *tabBarController;// 声明一个标签控制器
}
@property (nonatomic, retain) IBOutlet UIWindow *window;
@end
//lvyouAppDelegate.h原代码结束
其次:要在项目.m中(lvyouAppDelegate.m)初始化,并将所要管理的控制器(本例是两个:一个导航控制器、另一个是美食天地视图控制器)放到其viewControllers数组中
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
tabBarController = [[UITabBarController alloc] init];//初始化标签栏控制器
MeiShiTianDi *viewController =[[MeiShiTianDi alloc] init];//初始化控制器
viewController.title=@"美食天地";
navController = [[UINavigationController alloc] init];//初始化导航控制器
//加入标签栏控制器的控制器数量矩阵
//本例为两个控制器navController viewController
tabBarController.viewControllers =
[NSArray arrayWithObjects:navController, viewController,nil];
[viewController release];//因它不是第一个视图控制器,故释放内存
//定义名称为“所有城市”的返回按钮。该按钮无需target和action
//因为系统已经实现了返回功能。Style是显示风格
UIBarButtonItem *backButton =
[[UIBarButtonItem alloc] initWithTitle:@"所有城市"
相关新闻>>
- 发表评论
-
- 最新评论 更多>>