自定义NavigationController(根据自定义UIBarButtonItem+ZZ)快速创建
2015-10-31 11:38
465 查看
//
// ZZNavigationController.h
// ZZ_APP主流框架
//
// Created by ZZ_Macpro on 15/10/9.
// Copyright (c) 2015年 ZZ_Macpro. All rights reserved.
//
#import <UIKit/UIKit.h>
@interface ZZNavigationController :
UINavigationController
@end
//
// ZZNavigationController.m
// ZZ_APP主流框架
//
// Created by ZZ_Macpro on 15/10/9.
// Copyright (c) 2015年 ZZ_Macpro. All rights reserved.
//
#import "ZZNavigationController.h"
#import "UIBarButtonItem+ZZ.h"
@interface
ZZNavigationController ()
@end
@implementation ZZNavigationController
/**
* 只创建一次
*/
+ (void)initialize
{
// 1.设置导航栏主题
[self
setupNavBarTheme];
// 2.设置导航栏按钮的主题
[self
setupBarButtonTheme];
}
/**
* 设置导航栏主题
*/
+ (void)setupNavBarTheme
{
// 1.获得bar对象
UINavigationBar *navBar = [UINavigationBar
appearance];
// 2.判断ios7
if (!iOS7) {
//
设置bar背景
[navBar setBackgroundImage:[UIImage
imageWithName:@"navigationbar_background"]
forBarMetrics:UIBarMetricsDefault];
[UIApplication
sharedApplication].statusBarStyle =
UIStatusBarStyleBlackOpaque;
}
// 3.设置文字样式
NSMutableDictionary *attrs = [NSMutableDictionary
dictionary];
attrs[UITextAttributeTextColor] =
ZZNavigationBarTitleColor;
attrs[UITextAttributeFont] =
ZZNavigationBarTitleFont;
attrs[UITextAttributeTextShadowOffset] = [NSValue
valueWithUIOffset:UIOffsetMake(0,
0)];
[navBar setTitleTextAttributes:attrs];
}
/**
* 设置导航栏按钮的主题
*/
+ (void)setupBarButtonTheme
{
UIBarButtonItem *barItem = [UIBarButtonItem
appearance];
// 1.设置按钮的背景
if (!iOS7) {
[barItem setBackgroundImage:[UIImage
imageWithName:@"navigationbar_button_background"]
forState:UIControlStateNormal
barMetrics:UIBarMetricsDefault];
[barItem setBackgroundImage:[UIImage
imageWithName:@"navigationbar_button_background_pushed"]
forState:UIControlStateHighlighted
barMetrics:UIBarMetricsDefault];
[barItem setBackgroundImage:[UIImage
imageWithName:@"navigationbar_button_background_disable"]
forState:UIControlStateDisabled
barMetrics:UIBarMetricsDefault];
}
// 2.设置按钮的文字样式
NSMutableDictionary *attrs = [NSMutableDictionary
dictionary];
attrs[UITextAttributeTextColor] =
ZZBarButtonTitleColor;
attrs[UITextAttributeTextShadowOffset] = [NSValue
valueWithUIOffset:UIOffsetMake(0,
0)];
attrs[UITextAttributeFont] =
ZZBarButtonTitleFont;
[barItem setTitleTextAttributes:attrs
forState:UIControlStateNormal];
[barItem setTitleTextAttributes:attrs
forState:UIControlStateHighlighted];
NSMutableDictionary *disableAttrs = [NSMutableDictionary
dictionary];
disableAttrs[UITextAttributeTextColor] =
ZZBarButtonTitleDisabledColor;
disableAttrs[UITextAttributeTextShadowOffset] = [NSValue
valueWithUIOffset:UIOffsetMake(0,
0)];
[barItem setTitleTextAttributes:disableAttrs
forState:UIControlStateDisabled];
}
- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated
{
if (self.viewControllers.count)
{
viewController.hidesBottomBarWhenPushed =
YES;
viewController.navigationItem.leftBarButtonItem = [UIBarButtonItem
itemWithImage:@"navigationbar_back"
higlightedImage:@"navigationbar_back_highlighted"
target:self
action:@selector(back)];
if (self.viewControllers.count
<= 1) {
viewController.navigationItem.rightBarButtonItem = [UIBarButtonItem
itemWithImage:@"navigationbar_more"
higlightedImage:@"navigationbar_more_highlighted"
target:self
action:@selector(more)];
}
}
[super
pushViewController:viewController
animated:animated];
}
/**
* 返回
*/
- (void)back
{
[self
popViewControllerAnimated:YES];
}
/**
* 更多
*/
- (void)more
{
[self
popToRootViewControllerAnimated:YES];
}
- (void)viewDidLoad
{
[super
viewDidLoad];
self.view.backgroundColor =
ZZGlobalBg;
if (iOS7) {
//
重新拥有滑动出栈的功能
self.interactivePopGestureRecognizer.delegate =
nil;
}
}
@end
// ZZNavigationController.h
// ZZ_APP主流框架
//
// Created by ZZ_Macpro on 15/10/9.
// Copyright (c) 2015年 ZZ_Macpro. All rights reserved.
//
#import <UIKit/UIKit.h>
@interface ZZNavigationController :
UINavigationController
@end
//
// ZZNavigationController.m
// ZZ_APP主流框架
//
// Created by ZZ_Macpro on 15/10/9.
// Copyright (c) 2015年 ZZ_Macpro. All rights reserved.
//
#import "ZZNavigationController.h"
#import "UIBarButtonItem+ZZ.h"
@interface
ZZNavigationController ()
@end
@implementation ZZNavigationController
/**
* 只创建一次
*/
+ (void)initialize
{
// 1.设置导航栏主题
[self
setupNavBarTheme];
// 2.设置导航栏按钮的主题
[self
setupBarButtonTheme];
}
/**
* 设置导航栏主题
*/
+ (void)setupNavBarTheme
{
// 1.获得bar对象
UINavigationBar *navBar = [UINavigationBar
appearance];
// 2.判断ios7
if (!iOS7) {
//
设置bar背景
[navBar setBackgroundImage:[UIImage
imageWithName:@"navigationbar_background"]
forBarMetrics:UIBarMetricsDefault];
[UIApplication
sharedApplication].statusBarStyle =
UIStatusBarStyleBlackOpaque;
}
// 3.设置文字样式
NSMutableDictionary *attrs = [NSMutableDictionary
dictionary];
attrs[UITextAttributeTextColor] =
ZZNavigationBarTitleColor;
attrs[UITextAttributeFont] =
ZZNavigationBarTitleFont;
attrs[UITextAttributeTextShadowOffset] = [NSValue
valueWithUIOffset:UIOffsetMake(0,
0)];
[navBar setTitleTextAttributes:attrs];
}
/**
* 设置导航栏按钮的主题
*/
+ (void)setupBarButtonTheme
{
UIBarButtonItem *barItem = [UIBarButtonItem
appearance];
// 1.设置按钮的背景
if (!iOS7) {
[barItem setBackgroundImage:[UIImage
imageWithName:@"navigationbar_button_background"]
forState:UIControlStateNormal
barMetrics:UIBarMetricsDefault];
[barItem setBackgroundImage:[UIImage
imageWithName:@"navigationbar_button_background_pushed"]
forState:UIControlStateHighlighted
barMetrics:UIBarMetricsDefault];
[barItem setBackgroundImage:[UIImage
imageWithName:@"navigationbar_button_background_disable"]
forState:UIControlStateDisabled
barMetrics:UIBarMetricsDefault];
}
// 2.设置按钮的文字样式
NSMutableDictionary *attrs = [NSMutableDictionary
dictionary];
attrs[UITextAttributeTextColor] =
ZZBarButtonTitleColor;
attrs[UITextAttributeTextShadowOffset] = [NSValue
valueWithUIOffset:UIOffsetMake(0,
0)];
attrs[UITextAttributeFont] =
ZZBarButtonTitleFont;
[barItem setTitleTextAttributes:attrs
forState:UIControlStateNormal];
[barItem setTitleTextAttributes:attrs
forState:UIControlStateHighlighted];
NSMutableDictionary *disableAttrs = [NSMutableDictionary
dictionary];
disableAttrs[UITextAttributeTextColor] =
ZZBarButtonTitleDisabledColor;
disableAttrs[UITextAttributeTextShadowOffset] = [NSValue
valueWithUIOffset:UIOffsetMake(0,
0)];
[barItem setTitleTextAttributes:disableAttrs
forState:UIControlStateDisabled];
}
- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated
{
if (self.viewControllers.count)
{
viewController.hidesBottomBarWhenPushed =
YES;
viewController.navigationItem.leftBarButtonItem = [UIBarButtonItem
itemWithImage:@"navigationbar_back"
higlightedImage:@"navigationbar_back_highlighted"
target:self
action:@selector(back)];
if (self.viewControllers.count
<= 1) {
viewController.navigationItem.rightBarButtonItem = [UIBarButtonItem
itemWithImage:@"navigationbar_more"
higlightedImage:@"navigationbar_more_highlighted"
target:self
action:@selector(more)];
}
}
[super
pushViewController:viewController
animated:animated];
}
/**
* 返回
*/
- (void)back
{
[self
popViewControllerAnimated:YES];
}
/**
* 更多
*/
- (void)more
{
[self
popToRootViewControllerAnimated:YES];
}
- (void)viewDidLoad
{
[super
viewDidLoad];
self.view.backgroundColor =
ZZGlobalBg;
if (iOS7) {
//
重新拥有滑动出栈的功能
self.interactivePopGestureRecognizer.delegate =
nil;
}
}
@end
相关文章推荐
- IOS开发笔记33-UITableView(1)
- LiquiBase 学习
- rotue路由的配置
- 解决SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的 STATEMENT'OpenRowset/OpenDatasource' 的访问的方法
- easyui的datagrid组件,如何设置点击某行不会高亮该行的方式
- UIView UILabel UITextField UIButton UIImageView 常用属性
- iOS 8 Auto Layout界面自动布局系列2-使用Xcode的Interface Builder添加布局约束
- pdo mysql错误:Cannot execute queries while other unbuffered queries are active
- You can ignore those files in your build.gradle
- Codeforces Round #279 (Div. 2) B. Queue(链表)
- 在插入数据库,读写request乱码问题,增加一句话,搞定
- LeetCode -- Permutation Sequence
- poj 2533 Longest Ordered Subsequence (最长上升子序列)
- IOS开发笔记32-UITableView(3)
- IOS笔记UI--普通传值(正向传值)
- Designing Efficient Algorithms [Examples]~E - Subsequence
- 快速创建一个UIBarButtonItem
- Ligerui表格基本操作(一)
- UIImage的分类
- IOS开发笔记31-UITableView(2)