分栏控制器与导航控制器的联合使用-主流框架
2015-08-21 08:11
232 查看
分栏控制器与导航控制器的联合使用-主流框架
现在的一些主流的框架基本上是按 分栏控制器和导航控制器配合使用的
导航控制器负责横向切换
分栏控制器是控制纵向的切换
我们应该研究 一些主流框架的实现原理 在此基础上提升的速度才会比较快
这里只是给大家抛砖,希望大家能够学习到一些知识
我们所说的栈控制器 -本质上就是一个数组 ,用于管理每个页面
直接上代码了:
//
// GPBookListController.h
// 88888-tabbar
#import <UIKit/UIKit.h>
@interface GPBookListController :
UIViewController
@end
现在的一些主流的框架基本上是按 分栏控制器和导航控制器配合使用的
导航控制器负责横向切换
分栏控制器是控制纵向的切换
我们应该研究 一些主流框架的实现原理 在此基础上提升的速度才会比较快
这里只是给大家抛砖,希望大家能够学习到一些知识
我们所说的栈控制器 -本质上就是一个数组 ,用于管理每个页面
直接上代码了:
// // AppDelegate.h // 88888-tabbar #import <UIKit/UIKit.h> @interface AppDelegate : UIResponder <UIApplicationDelegate> @property (strong, nonatomic) UIWindow *window; @end
// // AppDelegate.m // 88888-tabbar #import "AppDelegate.h" #import "GPoneController.h" #import "GPTwoController.h" @interface AppDelegate () @end @implementation AppDelegate - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { self.window = [[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds]; UITabBarController *tab = [[UITabBarController alloc]init]; GPoneController *one = [[GPoneController alloc]init]; one.view.backgroundColor = [UIColor blueColor]; UINavigationController *nvcOne = [[UINavigationController alloc]initWithRootViewController:one]; nvcOne.tabBarItem.title = @"你的"; GPTwoController *two = [[GPTwoController alloc]init]; two.view.backgroundColor = [UIColor greenColor]; UINavigationController *nvcTwo = [[UINavigationController alloc]initWithRootViewController:two]; nvcTwo.tabBarItem.title = @"我的"; NSArray *controllers = @[nvcOne,nvcTwo]; tab.viewControllers = controllers; self.window.rootViewController = tab; [self.window makeKeyAndVisible]; // Override point for customization after application launch. return YES; } - (void)applicationWillResignActive:(UIApplication *)application { // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game. } - (void)applicationDidEnterBackground:(UIApplication *)application { // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. } - (void)applicationWillEnterForeground:(UIApplication *)application { // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background. } - (void)applicationDidBecomeActive:(UIApplication *)application { // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. } - (void)applicationWillTerminate:(UIApplication *)application { // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. } @end
// // GPoneController.h // 88888-tabbar #import <UIKit/UIKit.h> @interface GPoneController : UIViewController @end
// // GPoneController.m // 88888-tabbar #import "GPoneController.h" #import "GPBookListController.h" @interface GPoneController () @end @implementation GPoneController - (void)viewDidLoad { [super viewDidLoad]; UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom]; btn.frame = CGRectMake(0, 100, 200, 30); [btn setTitle:@"我的书库" forState:UIControlStateNormal]; btn.backgroundColor = [UIColor redColor]; [btn addTarget:self action:@selector(btnTouch) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:btn]; // Do any additional setup after loading the view. } -(void)btnTouch { GPBookListController *book = [[GPBookListController alloc]init]; book.view.backgroundColor = [UIColor grayColor]; [self.navigationController pushViewController:book animated:YES]; NSLog(@"btnTouch"); } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } /* #pragma mark - Navigation // In a storyboard-based application, you will often want to do a little preparation before navigation - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { // Get the new view controller using [segue destinationViewController]. // Pass the selected object to the new view controller. } */ @end
// // GPTwoController.h // 88888-tabbar #import <UIKit/UIKit.h> @interface GPTwoController : UIViewController @end
// // GPTwoController.m // 88888-tabbar #import "GPTwoController.h" @interface GPTwoController () @end @implementation GPTwoController - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } /* #pragma mark - Navigation // In a storyboard-based application, you will often want to do a little preparation before navigation - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { // Get the new view controller using [segue destinationViewController]. // Pass the selected object to the new view controller. } */ @end
//
// GPBookListController.h
// 88888-tabbar
#import <UIKit/UIKit.h>
@interface GPBookListController :
UIViewController
@end
// // GPBookListController.m // 88888-tabbar #import "GPBookListController.h" #import "GPnextController.h" @interface GPBookListController () @end @implementation GPBookListController - (void)viewDidLoad { [super viewDidLoad]; UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom]; btn.frame = CGRectMake(0, 200, 100, 30); [btn setTitle:@"跳转到你的页面" forState:UIControlStateNormal]; btn.backgroundColor = [UIColor orangeColor]; [self.view addSubview:btn]; [btn addTarget:self action:@selector(btnTouch) forControlEvents:UIControlEventTouchUpInside]; // Do any additional setup after loading the view. } -(void)btnTouch { GPnextController *nvc = [[GPnextController alloc]init]; [self.navigationController pushViewController:nvc animated:YES]; } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } /* #pragma mark - Navigation // In a storyboard-based application, you will often want to do a little preparation before navigation - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { // Get the new view controller using [segue destinationViewController]. // Pass the selected object to the new view controller. } */ @end
// // GPnextController.h // 88888-tabbar // #import <UIKit/UIKit.h> @interface GPnextController : UIViewController @end
// // GPnextController.m // 88888-tabbar #import "GPnextController.h" @interface GPnextController () @end @implementation GPnextController - (void)viewDidLoad { [super viewDidLoad]; self.view.backgroundColor = [UIColor purpleColor]; UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom]; btn.frame = CGRectMake(0,200, 200, 30); [btn setTitle:@"设置个人信息" forState:UIControlStateNormal]; btn.backgroundColor = [UIColor cyanColor]; [self.view addSubview:btn]; [btn addTarget:self action:@selector(btnTouch) forControlEvents:UIControlEventTouchUpInside]; // Do any additional setup after loading the view. } -(void)btnTouch { NSLog(@"设置成功"); } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } /* #pragma mark - Navigation // In a storyboard-based application, you will often want to do a little preparation before navigation - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { // Get the new view controller using [segue destinationViewController]. // Pass the selected object to the new view controller. } */ @end
相关文章推荐
- Android Api Demos登顶之路(四十一)Fragment-->Menu
- IOS SWIFT UITableView 实现简单微博列表
- Win8.1升级Win10开始菜单差评 设计不进反退
- hdu 1061 Rightmost Digit
- 英特尔快速存储技术
- 组态DNS、搜索域名和主机名
- BZOJ 4128 Matrix BSGS+矩阵求逆
- 快速清除winXP系统中explorer.exe病毒
- 解析大型.NET ERP系统 权限模块设计与实现
- Win10刷脸火眼金睛:美女双胞胎被Windows Hello识破
- dijkstra优先队列优化
- 索引扫描总是索引扫描么?
- Ubuntu14.04安装远程桌面服务端
- JAVA 时间工具类
- 笔记 引用与赋值
- Tslib和Qt 4.8.4与在开发板上的移植
- 互联网+时代的创业机会与建议
- Win8.1升级Win10用户:开始屏幕设计不进反退
- 一个顽疾——QT不能包含tslib的头和库文件联合编译的解决方法
- 职业规划