自定义UINavigationController 标题、左右边按钮 navigationbar 设置多个按钮

本文主要是介绍自定义UINavigationController 标题、左右边按钮 navigationbar 设置多个按钮,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

#import <UIKit/UIKit.h>@interface ILNavigationController : UINavigationController@end
@implementation ILNavigationController#pragma mark 一个类只会调用一次
+ (void)initialize
{// 1.取出设置主题的对象UINavigationBar *navBar = [UINavigationBar appearance];// 2.设置导航栏的背景图片NSString *navigBG = nil;if (VersionNumber_iOS_7) {navigBG = @"DMnavigationBg7.png";}else{navigBG = @"DMnavigationBg6.png";[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleBlackOpaque;// 1.4.设置导航栏的文字[navBar setTitleTextAttributes:@{UITextAttributeTextColor : kGetColor(26, 26, 26),UITextAttributeTextShadowOffset : [NSValue valueWithUIOffset:UIOffsetZero],UITextAttributeFont : [UIFont systemFontOfSize:18]}];}[navBar setBackgroundImage:[UIImage imageNamed:navigBG] forBarMetrics:UIBarMetricsDefault];// 3.设置导航栏标题颜色为白色[navBar setTitleTextAttributes:@{UITextAttributeTextColor : [UIColor blackColor]}];
}#pragma mark 控制状态栏的样式
/*状态栏的管理:1> iOS7之前:UIApplication2> iOS7开始:交给对应的控制器去管理*/
- (UIStatusBarStyle)preferredStatusBarStyle
{// 白色样式return UIStatusBarStyleDefault;
}- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated
{if (self.viewControllers.count) {viewController.hidesBottomBarWhenPushed = YES;}[super pushViewController:viewController animated:animated];
}@end//调用自定义的navigation 导航栏
DMJFQListViewController *wall = [[DMJFQListViewController alloc] init];ILNavigationController *navigation = [[ILNavigationController alloc] initWithRootViewController:wall];[self presentViewController:navigation animated:YES completion:Nil];设置导航栏// 导航栏背景[[UINavigationBar appearance] setTintColor:kNavigationBarColor];// 导航栏标题[[UINavigationBar appearance] setTitleTextAttributes:@{UITextAttributeTextColor:[UIColor whiteColor]}];// 状态栏颜色[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleBlackOpaque;//中间标题
UILabel *navLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 320, 44)];
navLabel.text = @"团购详情";
navLabel.textColor = [UIColor whiteColor];
navLabel.font = [UIFont systemFontOfSize:18];
navLabel.textAlignment = NSTextAlignmentCenter;
self.navigationItem.titleView = navLabel;//右边收藏按钮
UIButton *rightButton = [UIButton buttonWithType:UIButtonTypeCustom];
rightButton.frame = CGRectMake(0, 0, 20, 20);
[rightButton setBackgroundImage:LOAD_IMAGE(@"meishoucang") forState:UIControlStateNormal];
[rightButton addTarget:self action:@selector(doShouCang) forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem *rightItem = [[UIBarButtonItem alloc] initWithCustomView:rightButton];
self.navigationItem.rightBarButtonItem = rightItem;//左边返回按钮
UIButton *fanHuiButton = [UIButton buttonWithType:UIButtonTypeCustom];
fanHuiButton.frame = CGRectMake(0, 0, 30, 40);
[fanHuiButton setBackgroundImage:LOAD_IMAGE(@"fanhuijiantou") forState:UIControlStateNormal];
[fanHuiButton addTarget:self action:@selector(doFanHui) forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem *leftItem = [[UIBarButtonItem alloc] initWithCustomView:fanHuiButton];
self.navigationItem.leftBarButtonItem = leftItem;<pre name="code" class="objc">


navigationBar 上设置多个按钮
<span style="white-space:pre">	</span>UIButton *rightButton1 = [UIButton buttonWithType:UIButtonTypeCustom];rightButton1.frame = CGRectMake(0, 0, 38, 31);[rightButton1 setBackgroundImage:[UIImage imageNamed:@"pl_add_boyou.png"] forState:UIControlStateNormal];[rightButton1 addTarget:self action:@selector(showAddCompanion) forControlEvents:UIControlEventTouchUpInside];UIBarButtonItem *saveButton = [[UIBarButtonItem alloc]initWithCustomView:rightButton1];UIButton *rightButton2 = [UIButton buttonWithType:UIButtonTypeCustom];rightButton2.frame = CGRectMake(0, 0, 41, 35);[rightButton2 setBackgroundImage:[UIImage imageNamed:@"pl_ibo_setter.png"] forState:UIControlStateNormal];[rightButton2 addTarget:self action:@selector(showAddCompanion) forControlEvents:UIControlEventTouchUpInside];UIBarButtonItem *deleteButton = [[UIBarButtonItem alloc]initWithCustomView:rightButton2];NSArray *buttonArray = [[NSArray alloc]initWithObjects:saveButton,deleteButton, nil];self.navigationItem.rightBarButtonItems = buttonArray;


                                    

这篇关于自定义UINavigationController 标题、左右边按钮 navigationbar 设置多个按钮的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1011412

相关文章

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

Android实现任意版本设置默认的锁屏壁纸和桌面壁纸(两张壁纸可不一致)

客户有些需求需要设置默认壁纸和锁屏壁纸  在默认情况下 这两个壁纸是相同的  如果需要默认的锁屏壁纸和桌面壁纸不一样 需要额外修改 Android13实现 替换默认桌面壁纸: 将图片文件替换frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.*  (注意不能是bmp格式) 替换默认锁屏壁纸: 将图片资源放入vendo

自定义类型:结构体(续)

目录 一. 结构体的内存对齐 1.1 为什么存在内存对齐? 1.2 修改默认对齐数 二. 结构体传参 三. 结构体实现位段 一. 结构体的内存对齐 在前面的文章里我们已经讲过一部分的内存对齐的知识,并举出了两个例子,我们再举出两个例子继续说明: struct S3{double a;int b;char c;};int mian(){printf("%zd\n",s

Spring 源码解读:自定义实现Bean定义的注册与解析

引言 在Spring框架中,Bean的注册与解析是整个依赖注入流程的核心步骤。通过Bean定义,Spring容器知道如何创建、配置和管理每个Bean实例。本篇文章将通过实现一个简化版的Bean定义注册与解析机制,帮助你理解Spring框架背后的设计逻辑。我们还将对比Spring中的BeanDefinition和BeanDefinitionRegistry,以全面掌握Bean注册和解析的核心原理。

Oracle type (自定义类型的使用)

oracle - type   type定义: oracle中自定义数据类型 oracle中有基本的数据类型,如number,varchar2,date,numeric,float....但有时候我们需要特殊的格式, 如将name定义为(firstname,lastname)的形式,我们想把这个作为一个表的一列看待,这时候就要我们自己定义一个数据类型 格式 :create or repla

uniapp设置微信小程序的交互反馈

链接:uni.showToast(OBJECT) | uni-app官网 (dcloud.net.cn) 设置操作成功的弹窗: title是我们弹窗提示的文字 showToast是我们在加载的时候进入就会弹出的提示。 2.设置失败的提示窗口和标签 icon:'error'是设置我们失败的logo 设置的文字上限是7个文字,如果需要设置的提示文字过长就需要设置icon并给

C# 防止按钮botton重复“点击”的方法

在使用C#的按钮控件的时候,经常我们想如果出现了多次点击的时候只让其在执行的时候只响应一次。这个时候很多人可能会想到使用Enable=false, 但是实际情况是还是会被多次触发,因为C#采用的是消息队列机制,这个时候我们只需要在Enable = true 之前加一句 Application.DoEvents();就能达到防止重复点击的问题。 private void btnGenerateSh

Tomcat性能参数设置

转自:http://blog.csdn.net/chinadeng/article/details/6591542 Tomcat性能参数设置 2010 - 12 - 27 Tomcat性能参数设置 博客分类: Java Linux Tomcat 网络应用 多线程 Socket 默认参数不适合生产环境使用,因此需要修改一些参数   1、修改启动时内存参数、并指定J

HTML5自定义属性对象Dataset

原文转自HTML5自定义属性对象Dataset简介 一、html5 自定义属性介绍 之前翻译的“你必须知道的28个HTML5特征、窍门和技术”一文中对于HTML5中自定义合法属性data-已经做过些介绍,就是在HTML5中我们可以使用data-前缀设置我们需要的自定义属性,来进行一些数据的存放,例如我们要在一个文字按钮上存放相对应的id: <a href="javascript:" d

一步一步将PlantUML类图导出为自定义格式的XMI文件

一步一步将PlantUML类图导出为自定义格式的XMI文件 说明: 首次发表日期:2024-09-08PlantUML官网: https://plantuml.com/zh/PlantUML命令行文档: https://plantuml.com/zh/command-line#6a26f548831e6a8cPlantUML XMI文档: https://plantuml.com/zh/xmi