ios-如何在所有使用了自定义UINavigationBar的界面中使用自定义的UIBarButtonItem

问题描述

如何在所有使用了自定义UINavigationBar的界面中使用自定义的UIBarButtonItem

不是每个界面都写一遍

UIImage image = [UIImage imageNamed:imagePath];
UIButton
button = [UIButton buttonWithType:UIButtonTypeCustom];
button.frame = CGRectMake(0.0, 0.0, image.size.width, image.size.height);
[button setImage:image forState:UIControlStateNormal];
[button setImage:[UIImage imageNamed:highLightImagePath] forState:UIControlStateHighlighted];
[button addTarget:self action:selector forControlEvents:UIControlEventTouchUpInside];
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:button];

能不能有一个统一的方法统一设置?

解决方案

你可以把这个加到一个单独的global-variables文件中,像这样:

GlobalVariable.h

+(UIBarButtonItem*)customButton;

GlobalVariable.m

+(UIBarButtonItem*)customButton{
    UIImage image = [UIImage imageNamed:imagePath];
    UIButton button = [UIButton buttonWithType:UIButtonTypeCustom];
    button.frame = CGRectMake(0.0, 0.0, image.size.width, image.size.height);
    [button setImage:image forState:UIControlStateNormal];
    [button setImage:[UIImage imageNamed:highLightImagePath] forState:UIControlStateHighlighted];
    [button addTarget:self action:selector forControlEvents:UIControlEventTouchUpInside];
    UIBarButtonItem* btn = [[UIBarButtonItem alloc] initWithCustomView:button];
    return btn;
}

然后,在你想要按钮出现的view中import GlobalVariable.h,然后调用

self.navigationItem.leftBarButtonItem = [GlobalVariable customButton];

你可以一直用这个 GlobalVariable,以防你在其他的variables中也需要用到。

时间: 2024-05-25 19:03:17

ios-如何在所有使用了自定义UINavigationBar的界面中使用自定义的UIBarButtonItem的相关文章

自定义组件事件-JSP中的自定义标签用来上传多张图片文件

问题描述 JSP中的自定义标签用来上传多张图片文件 跪求:自定义标签实现上传图片功能,java中的类代码咋写啊,最好能实现能一次上传多张照片.

JSP页面中的自定义标签

js|页面 JSP页面中的自定义标签 JSP页面中的自定义标签 Stephanie Bodoff 用于调用Javaean组件中的操作和执行请求分派的标准JSP标签简化了JSP页面的开发和维护.JSP技术还提供了在自定义标签中封装其他动态功能的机制,这种自定标签是JSP语言的扩展.自定义标签通常是以标签库的形式出现的,它定义了一组相关的自定义标签,并包含实现这些标签的对象. 可以由自定义标签执行的任务包括对隐式对象的操作.处理表单.访问数据库和其他企业级服务,如电子邮件和目录.以及执行流程控制.J

iOS中给自定义tabBar的按钮添加点击放大缩小的动画效果_IOS

之前想过一些通过第三方的方式实现动画,感觉有点麻烦,就自己写了一个 不足之处还望大家多多指出 // 一句话,写在UITabBarController.m脚本中,tabBar是自动执行的方法 // 点击tabbarItem自动调用 -(void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item { NSInteger index = [self.tabBar.items indexOfObject:item]; [self a

Android开发中MJRefresh自定义刷新动画效果_Android

[一]常见用法 最原始的用法,耦合度低,但是不能统一管理.我们需要在每一个控制器都写以下代码,很繁琐,以后项目修改起来更繁琐,得一个控制器一个控制器的去定位.修改. 1.1 使用默认刷新(耦合度底,但是想统一修改起来特别麻烦) self.tableView.mj_header = [MJRefreshNormalHeader headerWithRefreshingBlock:^{ //在这里执行刷新操作 }]; self.tableView.mj_header = [MJRefreshNorm

AngularJS中的自定义指令的使用介绍

  这篇文章主要介绍了深入讲解AngularJS中的自定义指令的使用,AngularJS是一款热门的JavaScript开发库,需要的朋友可以参考下 AngularJS的自定义指令,就是你自己的指令,加上编译器编译DOM时运行的原生核心函数.这可能很难理解.现在,假设我们想在应用中不同页面复用一些特定的代码,而又不复制代码.那么,我们就可以简单地把这段代码放到单独的文件,并调用使用自定义指令的代码,而不是一遍又一遍地敲下来.这样的代码更容易理解.AngularJS中有四种类型的自定义指令: 元素

listview-在Android中如何自定义复选框?

问题描述 在Android中如何自定义复选框? 我想显示像 Radio button 这样的复选框,是否能自己定义复选框的形状和大小呢? 大家做过类似的功能吗? 解决方案 使用这个代码: <CheckBox android:layout_width="wrap_content" android:layout_height="wrap_content" android:button="@android:drawable/btn_radio"/

PHP中的自定义路由使用小结

简介 我手上有个用PHP写的网站,类似于个人测试性质的站点,我独立设计,在这过程中犯了所有可能的设计和编程上的错误,同时我也收获了很多,这也促使 我去学习PHP和MySQL.每当我学习新的技术或web实践时,都会想到我的网站会从中得益.正如你可以想象到的,它的可读性不强.测试网站往往在代码 可读性和可维护性方面表现糟糕,尤其当你仅仅因为某些必要的功能而学习一门编程语言时,而这也正是我一直以来学习PHP的方式. 自从了解了ASP.NET MVC,我便思考如何在这个网站上实践这套MVC模式.我喜欢这

在ASP.NET Atlas中创建自定义的Behavior

asp.net|创建 English Version: http://dflying.dflying.net/1/archive/120_build_your_own_behaviors_in_aspnet_atlas.html Atlas中的Behavior定义了当控件的某个事件被触发时的行为.Behavior可以看作是一种封装了的DHTML的事件,例如click和hover等.Behavior同样可以是一个组件,可被attach到某个Atlas客户端控件上,以提供这个Atlas客户端控件更高

在ASP.NET Atlas中创建自定义Behavior

asp.net|创建 Atlas中的Behavior定义了当控件的某个事件被触发时的行为.Behavior可以看作是一种封装了的DHTML的事件,例如click和hover等.Behavior同样可以是一个组件,可被attach到某个Atlas客户端控件上,以提供这个Atlas客户端控件更高级,更丰富的功能,例如一些复杂的拖放(drag & drop),自动完成,浮动等功能.Behavior将被定义在某个Atlas控件的behaviors集合中. 从Atlas文档以及源文件中,我们可以知道Atl