UINavigationController导航视图器

导航栏的视图器的定义:

   1  导航视图器是管理视图的工具 所管理的这些视图 之间有明显的层次关系 它是以栈的方式来管理的先进后出型的

   2  导航视图器是不可见的 可见的是导航条 navigationbar

   3  在导航条上显示的按钮和标题 是navigationitem 它是以众多 左按钮 标题 和众多右按钮组成的

   4  导航栏再添加 试图控制器的时候 有一个根试图控制器必须添加 这个根试图控制器必须添加 这个根试图控制器是第一个界面‘

 //导航栏的颜色

UINavigationController

    //self.navigationController.navigationBar.backgroundColor=[UIColor blueColor];

    //导航栏的样式

    

    //只要不设置导航栏的样式 ios7 之后 默认都是半透明的

    /**

    UIBarStyleDefault          = 0,

     

     UIBarStyleBlack            = 1,

     

     UIBarStyleBlackOpaque      = 1,  黑色

     

     UIBarStyleBlack

     

     UIBarStyleBlackTranslucent = 2,

     */

    self.navigationController.navigationBar.barStyle=UIBarStyleBlack;

    

    //3 是否透明 ios6之前 默认是NO(不透明  ios7 之后默认是YES 透明

    

    self.navigationController.navigationBar.translucent=NO;

    // Do any additional setup after loading the view.

    /**

     *状态栏的高度是20 导航栏的高度是 44 但是ios7之后是 设置导航栏的高度一般是64

     将将导航栏的透明度置为不透明时 试图控制器 自带的视图 self.View farm x y 的值是(64 导航条在透明的状态下 self.View fram x y的值是( 0);

     

     */

    //4 详情 设置详情之后导航条的高度会增加30

    self.navigationItem.prompt=@"详情";

    //5给导航条添加背景图

    /**

     UIBarMetricsDefault, 竖屏 这个才显示 导航栏的背景图

     

     UIBarMetricsCompact, 横屏

     

     UIBarMetricsDefaultPrompt

    

     UIBarMetricsCompactPrompt,

     

     UIBarMetricsLandscapePhone

     

     UIBarMetricsLandscapePhonePrompt

     */

    [self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"header_bg64"forBarMetrics:UIBarMetricsDefault];

    

    self.navigationItem.title=[NSString stringWithFormat:@"%ld",self.navigationController.viewControllers.count];

 

 

 

//添加左按钮

   

    //action 后边添加参数的话 参数类型UIBarbuttonitem类型的

    UIBarButtonItem * leftBBI=[[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemStop target:self action:@selector(leftBBIClick:)];

   

    //添加一个按钮的方法

    self.navigationItem.leftBarButtonItem=leftBBI;

    //带标题的按钮

    UIBarButtonItem*titleBBI=[[UIBarButtonItem alloc]initWithTitle:@"hello" style:UIBarButtonItemStylePlain target:self action:@selector(leftBBIClick:)];

    

    //添加带图片的按钮

    //给图片添加显然模式 若是图片只显示 图片状态 将图片显示成原始状态

    //如果图片内容显示不出来 只显示轮廓 的话 需要给图片添加渲染[[UIImage imageNamed:@"图片名称+后缀"]imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]

    UIBarButtonItem*imageBBI=[[UIBarButtonItem alloc]initWithImage:[[UIImage imageNamed:@"itemImage"]imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]style:UIBarButtonItemStylePlain target:self action:@selector(leftBBIClick:)];

    

    

    

    

    //添加多个左按钮的方法 使用数组

    

   // self.navigationItem.leftBarButtonItems=[NSArray arrayWithObjects:leftBBI,titleBBI,imageBBI,nil] ;

    

    //自定义导航栏按钮 既带文字 有待图片

    UIButton*leftButton=[UIButton buttonWithType:UIButtonTypeCustom];

    leftButton.frame=CGRectMake(004444);

    [leftButton setTitle:@"按钮" forState:UIControlStateNormal];

    [leftButton setBackgroundImage:[UIImage imageNamed:@"itemImage2"forState:UIControlStateNormal];

    [leftButton addTarget:self action:@selector(buttonClick:) forControlEvents:UIControlEventTouchUpInside];

    

    //self.navigationItem.leftBarButtonItems=[NSArray arrayWithObjects:leftBBI,titleBBI,imageBBI,leftButton,nil] ;

    UIBarButtonItem*customBBI=[[UIBarButtonItem alloc]initWithCustomView:leftButton];

   // self.navigationItem.leftBarButtonItem=customBBI;

    

    //添加右边的单个按钮

    self.navigationItem.rightBarButtonItem=titleBBI;

    

    

    //添加左边多个按钮

    self.navigationItem.rightBarButtonItems=[NSArray arrayWithObjects:  customBBI, titleBBI,imageBBI, nil];

    //镂空颜色

    self.navigationController.navigationBar.tintColor=[UIColor redColor];

    

    //设置标题

    

    //1 设置控制器视图标题

    self.title=@"试图控制器标题";

    //2 设置导航item 标题 这个属性是导航条显示标题 若这个属性没有设置 默认显示试图控制器的标题

    self.navigationItem.title=@"导航显示标题";

    //没办法 只能修改字体大小和字体颜色  想要修改用到了自定义

    UILabel*titileLabel=[[UILabel alloc]initWithFrame:CGRectMake(01028044)];

    titileLabel.text=@"自定义";

    titileLabel.textColor=[UIColor blackColor];

    titileLabel.font=[UIFont systemFontOfSize:12];

    self.navigationItem.titleView=titileLabel;

    

}

 

 

//拿到保存界面的数组

    //跳转到首页

     [self.navigationController popToRootViewControllerAnimated:YES];

//    NSArray*viewControllers=self.navigationController.viewControllers;

//    

//    //返回到指定位置

//    [self.navigationController popToViewController:viewControllers[1] animated:YES];

 

 

//隐藏导航条

   // self.navigationController.navigationBarHidden=YES;

-(void)buttonClick:(UIButton*)button

{

    //界面跳转

    SecondViewController*svc=[[SecondViewController alloc]init];

    //到导航栏视图的界面的之间的跳转

    [self.navigationController pushViewController:svc animated:YES];

    //push之后 Push的界面 直接压入到栈内

}

 

[self.navigationController popViewControllerAnimated:YES];

#pragma mark -----按钮点击事件-----

 

 

-(void)leftBBIClick:(UIBarButtonItem*)barbutton

{

 

}

你可能感兴趣的:(UINavigationController导航视图器)