视图导航栏UInavigationController
来源:互联网 发布:淘宝苏哥战地1购买流程 编辑:程序博客网 时间:2024/06/09 17:13
本文讲的是导航栏,基本上没有难点。
本文的布局是,用导航栏来设置视图的转换,学习的内容为怎么改变导航栏的控件。
首先,AppDelegate.m中的代码有所改变
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { _window = [[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds]; _window.backgroundColor = [UIColor whiteColor]; LoginViewController *loginVC = [[LoginViewController alloc]init]; //创建导航控制器,并默认让那个试图控制器的view默认显示 UINavigationController *navigationC = [[UINavigationController alloc]initWithRootViewController:loginVC]; RegisterViewController *registerVC = [[RegisterViewController alloc]init]; //将导航控制器设置为_window的跟视图控制器 _window.rootViewController = navigationC;// //将RegisterVC入栈// [navigationC pushViewController:registerVC animated:YES];// [navigationC release]; [_window makeKeyAndVisible]; // Override point for customization after application launch. return YES;}
两个页面,一个登录页面,一个注册页面。
首先是登录页面控制器。
#import "LoginViewController.h"#import "RegisterViewController.h"@interface LoginViewController ()@end@implementation LoginViewController- (void)viewDidLoad { [super viewDidLoad]; self.view.backgroundColor = [UIColor yellowColor]; UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; button.backgroundColor = [UIColor grayColor]; [button setTitle:@"注册" forState:UIControlStateNormal]; [button addTarget:self action:@selector(clickButton:) forControlEvents:UIControlEventTouchUpInside]; button.frame = CGRectMake(100, 400, 80, 40); [self.view addSubview:button];#pragma mark ==============UINavigationBar(导航栏) /* 设置导航栏的barStyle(样式)和translucent(透明度) */ //默认(白色,半透明) self.navigationController.navigationBar.barStyle = UIBarStyleDefault; //是否透明 self.navigationController.navigationBar.translucent = YES; //设置成黑色// self.navigationController.navigationBar.barStyle = UIBarStyleBlack; //设置成不透明// self.navigationController.navigationBar.translucent = NO; //设置背景颜色,IOS 7.0之后的新特性,有局限性,就是变成不透明了 self.navigationController.navigationBar.barTintColor = [UIColor cyanColor]; //如果要改变的话,用backgroundColor// self.navigationController.navigationBar.backgroundColor = [UIColor cyanColor]; //设置导航栏上的控件的颜色jing self.navigationController.navigationBar.tintColor = [UIColor redColor]; NSString *string = @"NavBar_64@2x.png"; UIImage *icon = [UIImage imageNamed:string]; //设置背景图片,后面的那个参数可以设置在那个状态下的背景图片,会根据图片的大小自动判断是否是44或64,使用状态栏 [self.navigationController.navigationBar setBackgroundImage:icon forBarMetrics:UIBarMetricsDefault];// NSString *string1 = @"NavBar_44.png";// UIImage *icon1 = [UIImage imageNamed:string1];// // [self.navigationController.navigationBar setBackgroundImage:icon1 forBarMetrics:UIBarMetricsDefault ];// NSString *string2 = @"NavBar_30.png";// UIImage *icon2 = [UIImage imageNamed:string2];// // [self.navigationController.navigationBar setBackgroundImage:icon2 forBarMetrics:UIBarMetricsDefault ]; [self.navigationController.navigationItem setPrompt:@"Prompt"];#pragma mark --------------导航栏上要显示的内容:UINavigationItem //①每一个导航控制器(NavigationController),有且只有一个导航栏(NavigationBar) //②导航栏上面展示的都是UINavigationItem里面的内容 //③每个视图控制器都有一个navigationItem //设置导航栏上的UIBarButtonItem,三种设置方式 //1.系统样式 UIBarButtonItem *rightBI = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(clickRightButtonItem:)]; self.navigationItem.rightBarButtonItem = rightBI; [rightBI release]; //2.使用tittle初始化设置UIBarButtonItem,设置成文字 UIBarButtonItem *barTittle = [[UIBarButtonItem alloc]initWithTitle:@"微信" style:UIBarButtonItemStylePlain target:self action:@selector(clickRightButtonItem:)]; self.navigationItem.rightBarButtonItem = barTittle; //设置导航栏上显示的内容 self.navigationItem.title = @"消息"; //3.使用图片设置UIbarButtonItem,此时,image需要进行渲染,默认渲染为模板样式,我们需要对image渲染设置为原图的方式 //默认为模板方式 UIImage *image2 = [UIImage imageNamed:@"NavBtnLeft.png"]; //渲染图片 需要一个新的图片来接收 UIImage *image3 = [image2 imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]; //设置 UIBarButtonItem *left = [[UIBarButtonItem alloc]initWithImage:image3 style:UIBarButtonItemStyleDone target:self action:@selector(clickRightButtonItem:)]; self.navigationItem.leftBarButtonItem = left; //设置导航栏上要显示的titleView self.navigationItem.titleView = [[UISegmentedControl alloc]initWithItems:@[@"消息",@"电话"]]; // Do any additional setup after loading the vbiew.}-(void)clickRightButtonItem:(UIBarButtonItem *)barButton{ NSLog(@"%s",__FUNCTION__);}-(void)viewWillAppear:(BOOL)animated{ [super viewWillAppear:animated]; NSLog(@"%s",__FUNCTION__);}-(void)viewDidAppear:(BOOL)animated{ [super viewDidAppear:animated]; NSLog(@"%s",__FUNCTION__);}-(void)viewWillDisappear:(BOOL)animated{ [super viewWillDisappear:animated]; NSLog(@"%s",__FUNCTION__);}-(void)viewDidDisappear:(BOOL)animated{ [super viewDidDisappear:animated]; NSLog(@"%s",__FUNCTION__);}-(void)clickButton:(UIButton *)button{ //创建要入栈的试图控制器 RegisterViewController *registerVC = [[RegisterViewController alloc]init]; [self.navigationController pushViewController:registerVC animated:YES];// [registerVC.button] //这里没法调用button,因为还没有创建#warning ---------------属性传值 registerVC.text = [button titleForState:UIControlStateNormal];#warning ----------容易出错的地方 //下面的这句话是错误的,应为label还没有创建,如果要想使用的话 加一句代码 [registerVC view]; registerVC.label.text = [button titleForState:UIControlStateNormal]; [registerVC release];}- (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated.}
下面就是注册页面的内容
#import <UIKit/UIKit.h>@interface RegisterViewController : UIViewController//用来接受上个页面传过来的字符串@property(nonatomic,retain)NSString * text;#warning mark---------将label声明为属性@property(nonatomic,retain)UILabel * label;@end
#import "RegisterViewController.h"@interface RegisterViewController ()@end@implementation RegisterViewController- (void)viewDidLoad { [super viewDidLoad]; self.view.backgroundColor = [UIColor cyanColor]; UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; button.backgroundColor = [UIColor grayColor]; [button setTitle:@"返回" forState:UIControlStateNormal]; [button addTarget:self action:@selector(clickButton:) forControlEvents:UIControlEventTouchUpInside]; button.frame = CGRectMake(100, 400, 80, 40); [self.view addSubview:button]; self.navigationItem.title = _text; UIBarButtonItem *rightBI = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(clickRightButtonItem:)]; self.navigationItem.rightBarButtonItem = rightBI; [rightBI release]; self.label = [[UILabel alloc]initWithFrame:CGRectMake(100, 200, 130, 30)]; _label.backgroundColor = [UIColor redColor]; _label.text = _text; [self.view addSubview:_label]; [_label release]; // Do any additional setup after loading the view.}-(void)clickButton:(UIButton *)button{// //返回上一次// [self.navigationController popViewControllerAnimated:YES];// // // //返回到第一级的页面(显示栈低试图控制器,其中栈低和湛顶之间的所有视图控制器都会被pop出栈,不需要手动pop// [self.navigationController popToRootViewControllerAnimated:YES];// // //返回到指定页面 NSArray *arr = self.navigationController.viewControllers; [self.navigationController popToViewController:arr[0] animated:YES]; NSLog(@"%@",self.navigationController.viewControllers);}-(void)clickRightButtonItem:(UIBarButtonItem *)barButton{ NSLog(@"%s",__FUNCTION__);}-(void)viewWillAppear:(BOOL)animated{ [super viewWillAppear:animated]; NSLog(@"%s",__FUNCTION__);}-(void)viewDidAppear:(BOOL)animated{ [super viewDidAppear:animated]; NSLog(@"%s",__FUNCTION__);}-(void)viewWillDisappear:(BOOL)animated{ [super viewWillDisappear:animated]; NSLog(@"%s",__FUNCTION__);}-(void)viewDidDisappear:(BOOL)animated{ [super viewDidDisappear:animated]; NSLog(@"%s",__FUNCTION__);}- (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated.}
0 0
- 视图导航栏UInavigationController
- 导航视图控制器UINavigationController
- UINavigationController 导航视图控制器
- UINavigationController导航视图器
- 导航类视图之UINavigationController
- 导航类视图之UINavigationController
- 导航类视图之UINavigationController
- iOS UITableView表视图滚动隐藏UINavigationController导航栏
- iOS中的UINavigationController导航栏视图控制器的简单应用
- UI-UINavigationController导航栏
- 导航栏控制器--UINavigationController
- UINavigationController(导航视图控制器)的基本设置
- UINavigationController属性 & 导航栏透明度影响下边子视图的原点位置
- 自定义UINavigationController导航栏背景
- UINavigationController设置导航栏属性
- UINavigationController导航栏按钮设置
- UINavigationController导航控制器 UINavigationBar导航栏
- Snail—UI学习之导航视图控制器UINavigationController(系统)
- HDu 1198 Farm Irrigation
- 单词的出现次数
- Jquery 菜单插件之 Superfish jQuery菜单
- day26
- Struts2、SpringMVC、Servlet(Jsp)性能对比测试
- 视图导航栏UInavigationController
- 动机与结果
- SQL列字符串拼接
- 黑马程序员-Foundation1-NSString 的 compare方法
- ios中正确的裁剪图片,这样不必要每次都向服务器下载图片。
- 蚂蚁碰撞概率
- Hdu 1087 Super Jumping! Jumping! Jumping!(DP)
- bzoj-4103 异或运算
- Android基础入门教程——2.3.12 Date & Time组件(下)