温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

UINavigationController navigetionBar

发布时间:2020-06-15 21:21:36 来源:网络 阅读:624 作者:缘起愿落 栏目:开发技术

    

    firstViewController  * firstVC = [[firstViewController alloc]init];
    NViewController * RootController = [[NViewController alloc]initWithRootViewController:firstVC];

 

RootViewController * RootController = [[RootViewController alloc]initWithRootViewController:firstVC];
    [firstVC release];
    
  

导航控制器指定为window的控制器.
    self.window.rootViewController = RootController;
    
    
    [RootController release];


导航控制器用来管理一组具有层级关系的视图控制器,进入下一个界面的方法是push. 返回是pop
     (层级关系:后面的界面显示的内容依赖于前一个界面)
     
     当没有,层级关系的视图控制器之间切换时(比如:前一个界面显示的内容依赖于后一个界面). 要使用模态视图.进入下一个界面的方式是present 返回是dismiss


如果第二个界面需要导航控制器,则模态出导航控制器


当由前一个界面push到后一个界面时,比如A push 到 B

 A(viewWillDisapper) -- > B (viewWillApper) --> A (viewDidDisapper) -->B(viewDidApper)


后一个界面pop回前一个界面时

 B(viewWillDisapper) -- > A (viewWillApper) --> B (viewDidDisapper) -->A(viewDidApper)

和视图相关的四个方法


当视图控制器的view将要出现时触发
- (void)viewWillAppear:(BOOL)animated
{
    NSLog(@"%s",__FUNCTION__);
    [super viewWillAppear:YES];
}


当视图控制器的view已经出现时触发
- (void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:YES];
    NSLog(@"%s",__FUNCTION__);
}


当视图控制器的view将要消失时触发
 - (void)viewWillDisappear:(BOOL)animated
{
    
    [super viewWillDisappear:YES];
    NSLog(@"%s",__FUNCTION__);
}


当视图控制器的view已经消失时触发
- (void)viewDidDisappear:(BOOL)animated
{
    [super viewDidDisappear:YES];
    NSLog(@"%s",__FUNCTION__);
}


 

  1. 修改navigetionBar 的颜色
        self.navigationController.navigationBar.barTintColor = [UIColor whiteColor];

       

2.关闭navigationBar 的毛玻璃效果. 

self.navigationController.navigationBar.translucent = noErr;

   

3.将navigationBar 隐藏掉
  

self.navigationController.navigationBarHidden = YES;
  


4.设置图片
    
      不同尺寸的图片的效果不同
     320 * 44 只会给navigationBer 附上图片
    
   [self.navigationController.navigationBar setBackgroundImage:[UIImage p_w_picpathNamed:@"32044"] forBarMetrics:UIBarMetricsDefault];
    
    高度小于44 ,以及高度 大于 44 小于64 : 会平铺navigationBar以及状态条
    
    [self.navigationController.navigationBar setBackgroundImage:[UIImage p_w_picpathNamed:@"32050"] forBarMetrics:UIBarMetricsDefault];
    
    高度等于64: 整个图片在navigation以及在状态条上显示
     [self.navigationController.navigationBar setBackgroundImage:[UIImage p_w_picpathNamed:@"32064"] forBarMetrics:UIBarMetricsDefault];
    
     注意以上四点都是对navigationBar直接配置,所以该操作对每一个界面navigationBar上消失的内容都会有影响.(效果都是一样的)
    
    
    为每一个界面的navigationBar上显示的内容单独定制(每一个界面内容不一样)
    
  单独定制修改视图控制器的navigationItem
    
    
  设置界面的title
    self.navigationItem.title = @"好友";
    
  修改title(中间显示的视图)
    UISegmentedControl *segmented = [[UISegmentedControl alloc]initWithItems:@[@"分组",@"全部"]];
    
    
    self.navigationItem.titleView = segmented;
    
    [segmented release];
    
    
  配置navigationBar右边显示的内容
    UIBarButtonItem * btn = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(add:)];
    self.navigationItem.rightBarButtonItem = btn;
    [btn release];




   

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI