UINavigationController 导航控制器 IOS7适配 导航栏不透明

摘要  UINavigationController 导航控制器 IOS7适配 导航栏不透明
UINavigationController  导航控制器  IOS7适配  导航栏不透明


导航控制器使用了导航堆栈。根视图控制器(Settings)在堆栈最底层,以此类推。可以理解为一本书,一页一页的。这样就控制了 试图控制器

?
1
2
3
self.title = @ "Settings" // 改变标题
//其实这是一个区域 self.navigationItem.titleView = 
这是一个View 那就好办了,我们可以添加button imageView UISegmentedControl选项卡


?
1
2
3
4
5
     //视图控制器
ViewController1* vc = [[ViewController1 alloc] init];
     //导航控制器
     UINavigationController* nc = [[UINavigationController alloc] initWithRootViewController:vc];
     self.window.rootViewController = nc;

?
1
2
3
4
5
6
7
8
9
ViewController2* vc2 = [[ViewController2 alloc] init];
//进入第二个页面
[self.navigationController pushViewController:vc2 animated:YES];
//返回上一个页面
[self.navigationController popViewControllerAnimated:YES];
//返回根页面
     [self.navigationController popToRootViewControllerAnimated:YES];
//返回指定页面
   [self.navigationController popToViewController:vcX animated:YES];




bar:

包含左右UIBarButtonItem,也就是左右两个按钮,下面添加左面按钮:

?
1
2
3
UIBarButtonItem *leftButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemReply target:self action:@selector(clickLeftButton)];
//初始化并不是initWithBarButt....一种,聪明的你肯定知道comand点进去了。有initWithTitle。。。等等,这个可以改变按钮文字
     self.navigationItem.leftBarButtonItem = leftButton;

当然左边的默认显示的。右面的就不在这里添加了吧

下面是按钮样式,自行参考

UINavigationController 导航控制器 IOS7适配 导航栏不透明_第1张图片


toolBar:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
//显示toolBar
[self.navigationController setToolbarHidden:NO];
//添加toolBar 把UIBarButtonItem 放到,,,,,///UIBarButtonSystemItemFlexibleSpace 空白按钮风格
[self setToolbarItems:[NSArray arrayWithObjects:,,,, nil];
 
 
///自己添加UIToolbar
初始化 用setItems 添加 UIBarButtonItem
     UIToolbar* toolBar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 416-84, 320, 44)];
     toolBar.hidden = YES;
     //toolBar.backgroundColor = [UIColor redColor];
     [self.view addSubview:toolBar];
     //批量给Toolbar添加按钮
     NSMutableArray*  array  = [NSMutableArray  array ];
     for  (int i = 0; i < 7; i++) {
         if  (i%2==0) {
             UIBarButtonItem* button = [[[UIBarButtonItem alloc] initWithTitle:[NSString stringWithFormat:@ "%d" ,i] style:UIBarButtonItemStyleBordered target:self action:nil] autorelease];
             [ array  addObject:button];
         else  {
             UIBarButtonItem* button = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:self action:nil] autorelease];
             //宽
             //FixedSpace        固定空白
             //FlexibleSpace     灵活分布空白
             //button.width = 50;
             [ array  addObject:button];
         }
     }
     //如果是我们自己写的toolBar,用这个方法添加
     [toolBar setItems: array  animated:YES];
     //如果是导航自带的toolBar,用这个方法添加
     [self setToolbarItems: array ];

自定义按钮

?
1
2
//把自定义的按钮mybutton 添加到 UIBarButtonItem
barButton = [[UIBarButtonItem alloc] initWithCustomView:mybutton];

    // 让iOS7 导航控制器不透明

?
1
2
     self.navigationController.navigationBar.translucent = NO;
     self.edgesForExtendedLayout = UIRectEdgeNone;


//隐藏导航栏

?
1
[[self navigationController] setNavigationBarHidden:YES animated:YES];



你可能感兴趣的:(UINavigationController 导航控制器 IOS7适配 导航栏不透明)