首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

iOS - UIBarButtonItem标识符-创建“设置”齿轮按钮的选项

基础概念

UIBarButtonItem 是 iOS 开发中用于在导航栏或工具栏上显示按钮的类。它允许开发者自定义按钮的外观和行为。标识符(Identifier)是预定义的字符串,用于快速创建具有特定外观和功能的按钮。

相关优势

  1. 快速创建:使用标识符可以快速创建常见的按钮,无需手动设置按钮的图像和标题。
  2. 一致性:使用系统提供的标识符可以确保按钮在不同设备上具有一致的外观和行为。
  3. 简化代码:减少了手动设置按钮属性的代码量,使代码更加简洁和易读。

类型

常见的 UIBarButtonItem 标识符包括:

  • "Done":完成按钮,通常用于保存或提交操作。
  • "Cancel":取消按钮,用于取消当前操作。
  • "Edit":编辑按钮,用于进入编辑模式。
  • "Save":保存按钮,用于保存更改。
  • "Settings":设置按钮,通常显示为齿轮图标。

应用场景

在 iOS 应用中,UIBarButtonItem 标识符常用于以下场景:

  • 导航栏上的返回按钮。
  • 工具栏上的操作按钮,如添加、删除、编辑等。
  • 设置页面的齿轮按钮,用于打开设置菜单。

创建“设置”齿轮按钮的示例代码

代码语言:txt
复制
import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        
        // 创建一个 UIBarButtonItem 使用 "Settings" 标识符
        let settingsButton = UIBarButtonItem(barButtonSystemItem: .action, target: self, action: #selector(openSettings))
        
        // 将按钮添加到导航栏的右侧
        navigationItem.rightBarButtonItem = settingsButton
    }
    
    @objc func openSettings() {
        // 处理打开设置页面的逻辑
        print("打开设置页面")
    }
}

遇到的问题及解决方法

问题:为什么使用标识符创建的按钮没有显示预期的图标?

原因:可能是由于使用了错误的标识符,或者项目中没有正确配置相应的图像资源。

解决方法

  1. 确保使用正确的标识符。例如,创建“设置”齿轮按钮应使用 barButtonSystemItem: .action
  2. 检查项目中是否包含相应的图像资源。如果没有,可以从系统提供的图像库中选择合适的图像。

问题:如何自定义 UIBarButtonItem 的外观?

解决方法

可以通过设置 UIBarButtonItemtitleimagetintColor 等属性来自定义其外观。例如:

代码语言:txt
复制
let customButton = UIBarButtonItem(title: "自定义", style: .plain, target: self, action: #selector(customAction))
customButton.tintColor = .blue
navigationItem.rightBarButtonItem = customButton

参考链接

希望这些信息对你有所帮助!如果有更多问题,请随时提问。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

IOS开发基础系列】Navigation页面导航专题

2.3 回退按钮 2.3.1 回退按钮自定义 UIBarButtonItem * backItem = [[UIBarButtonItem alloc] initWithImage: [UIImage...】navigationBar导航条和navigationItem设置:基本搞定导航条上文字和按钮以及各种跳转 http://www.tuicool.com/articles/BZNVza 2.3.2...        最近iOS项目中要求导航栏返回按钮只保留那个箭头,去掉后边文字,在网上查了一些资料,最简单且没有副作用方法就是: [[UIBarButtonItem appearance] setBackButtonTitlePositionAdjustment...-7-uibarbuttonitem 2.5.4 隐藏返回按钮 [self.navigationItem setHidesBackButton: YES]; 2.5.5 设置导航栏标题字体颜色和大小...blog.csdn.net/hengshujiyi/article/details/29864339 UINavigationBar自定义返回按钮设置 http://blog.sina.com.cn/

43520
  • iOS开发UINavigation系列二——UINavigationItem

    iOS开发UINavigation系列二——UINavigationItem 一、引言         UINavigationItem是导航栏上用于管理导航项类,在上一篇博客中,我们知道导航栏是通过...上面我们看到这些,实际上只是一个item一部分,item还有许多其他附件,如果我们使导航栏再push出一个item,这时导航栏左边会出现一个返回按钮,这个返回按钮实际上是数据第一个item,我们做如下设置...我们也可以通过下面的方法设置右边按钮,或者直接设置一组按钮: @property(nullable, nonatomic,strong) UIBarButtonItem *leftBarButtonItem...,一个NavigationItem基本上是有三大部分组成,当前显示部分,返回按钮部分,和ButtonItem部分,同样对于创建设置UIBarButoonItem,也有很多方法供我们使用。         ...,对于BarButtonItem这个对象,系统也封装好了许多原生可以供我们使用,创建时候使用如下方法: UIBarButtonItem * button = [[UIBarButtonItem alloc

    67920

    iOS开发UINavigation系列三——工具栏UIToolBar

    iOS开发UINavigation系列三——工具栏UIToolBar         iOS中除了UINavinationBar之外,还有工具栏UIToolBar可以供我们使用,工具栏和导航栏十分类似,...只是功能更加简单,工具栏中也有UIBarButtonItem按钮,在前两篇博客中,对导航栏和导航项都进行讨论,地址如下: UINavigationBar:http://my.oschina.net/u...,与之相对,工具栏一般会出现在视图底部,上面可以填充一些按钮,提供给用户一些操作。... barStyle;  //设置工具栏上按钮数组 @property(nullable,nonatomic,copy) NSArray *items;  //设置工具栏是否透明... NSArray *)items animated:(BOOL)animated;  //设置item风格颜色 @property(null_resettable,

    56410

    iOS调整导航条BarButtonItem与titleView 间距

    前言 例子:调整BarButtonItem按钮和titleView间距 1、原理:titleview起点位置和尺寸依赖于leftBarButtonItem和rightBarButtonItem位置...常见问题 1、 BarButtonItem 隐藏失效解决方案:使用initWithCustomView进行实例化BarButtonItem 2、 iOS13.5.1 版本无法点击导航条右侧按钮:CustomView...titleView间距 ---- //设置右边按钮 UIBarButtonItem *btn_right = [UIBarButtonItem barButtonItemWithTarget...= lefttItem; 2.2 iOS13.5.1 版本无法点击导航条右侧按钮 无法点击代码 // UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom...rightBtn; 解决方案 CustomView 不能直接是UIButton, 因此解决方案只要对UIButton进行包装一层即可 - (void)setupNavigationBar { // 设置导航条右侧按钮

    2.1K20

    UI篇-UINavigationController之易忘补充

    上面设置为YES,下面的为NO 关于导航返回:     首先ios7 之后只要使用系统自带导航效果就有手动滑动返回效果。但是当自定义返回按钮时,这种手动滑动返回效果就没有了。...要自定义返回按钮,直接设置backBarButtonItem是不行 UINavigationController view层级 ?...:target:action:设置按钮样式及触发事件 -initWithTiltle:style:target:action: 设置标题触发事件 -initWithImage:style:target...:action:设置视图触发事件 tintColor  设置tintColor可以影响添加在导航条上系统样式按钮颜色  title: 标题  titleView :标题视图  leftBarButtonItem...每个视图控制器都有一个navigationItem属性,navigationItem中设置按钮、右按钮、标题等,会随着控制器显示,也显示到navigationBar上 我们来看一下这些名词是什么意思

    2.1K20

    UINavigationBar用法

    设置导航栏标题 这个直接是很简单设置,一行代码搞定 self.navigationItem.title = @"导航栏标题"; 设置导航栏背景颜色 导航栏背景颜色,也是很简单 自己替换代码中颜色即可...,我们设置返回按钮都是蓝色默认颜色,那么到底该怎么更改这些按钮颜色呢 设置返回按钮颜色,只设置tintColor颜色就好了 self.navigationController.navigationBar.tintColor...我们自己设置返回按钮,会导致系统侧滑关闭效果失效。添加上面代码中最后一句代码即可修复。...仅仅设置返回按钮文字 - (void)setBackButtonTitle { UIBarButtonItem *leftButton = [[UIBarButtonItem alloc] initWithTitle...如果你对返回按钮实在不满意,你可以自定义一个按钮,并把它设置为navigationleftButton - (void)setCustomLeftButton { UIView* leftButtonView

    2K20

    iOS小技能:自定义导航栏,设置全局导航条外观

    设置导航条渐变颜色 设置全局导航条按钮主题 拦截push:通过自定义类,重写自带方法实现 I、自定义导航栏 1.1 HWNavigationController.h #import <UIKit/UIKit.h...UIViewController*)vc; + (void)setupDetailnavigationItemAndBarStyle:(UIViewController*)vc; @end 复制代码 1.2 设置全局导航条按钮主题...IOS7) { return;//不需要设置全局导航条按钮主题 } //设置全局导航条按钮主题 [self settingbarButtonItenAppearance...-- 确保系统其它功能(短信)导航条与自己冲突,尤其在短信分享这方面要注意 UINavigationBar *navigationBar; if (IOS9) {...iOS6导航栏背景出图规格 非retina:320x44 px retina:640x88 px iOS7导航栏背景出图规格 retina:640x128

    2.4K20

    iOS键盘、选取器上工具栏

    在Android上键盘完成按钮是自带,但是iOS没有,所以需要开发者自行添加上去一个,这里就要用到工具栏UIToolbar。...,按钮背景图片就是那个小键盘图标,然后把按钮转换成一个UIBarButtonItem,这种类型对象才可以放在工具栏上。...上面我们是将一个tooBar作为inputAccessoryView,这就是另一种实现方式,不使用delegate,单独创建一个UIToolBar,直接设置上去,这个toolbar样式与功能和键盘工具栏是不一样...,还记得上面的delegate中设置了一下只有当不是选取器textfield时才显示键盘工具栏吗,如果不判断一下,两个工具栏会冲突,结果就是什么都不显示,创建工具栏代码如下: // 工具栏按钮 -...下面两个方法分别是取消和完成两个按钮响应方法,一个是直接收起选取器,一个是收起选取器之外还要设置输入框内容为所选择内容。 这样选取器工具栏按钮就完成了。

    1.5K10

    UINavigationController

    导航栏内容由栈顶控制器navigationItem属性决定 UINavigationItem有以下属性影响着导航栏内容 //左上角返回按钮 @property(nonatomic,retain...UIBarButtonItem *leftBarButtonItem; UIBarButtonItem *rightBarButtonItem //右上角视图 @property(nonatomic,...对象 设置Segue对象sourceViewController(来源控制器) 新建并且设置Segue对象destinationViewController(目标控制器) 页面跳转前操作 调用sourceViewController...下面方法,做一些跳转前准备工作并且传入创建Segue对象 作用:可以进行页面传值 - (void)prepareForSegue:(UIStoryboardSegue *)segue sender...首先创建一个当前控制器将要跳转到控制器 YLViewController *VC = [[YLViewController alloc] init]; //2.把Modal控制器

    1.4K60

    iOS 开发】基本 UI 控件详解 (UIButton | UITextField | UITextView | UISwitch)

    (2) 创建 Add Contact 按钮 创建 Add Contact 按钮 : 设置 UIButton Type 属性类型是 Add Contact; (3) 创建 Info Light |...Info Dark 按钮 创建 Info Light 按钮创建 Info Dark 按钮 :  (4) 创建 文字 按钮 创建文字按钮 :  -- Type 属性 : 设置为 Custom;...设置文本颜色 粉色, 阴影颜色 蓝色; (5) 创建 图片 按钮 创建 图片 按钮 :  -- 设置 Type 参数 : 设置为 Custom; -- 设置 Default 参数 : 设置 Image...设置按钮内容 :  //向导航条中加入按钮 bar.items = [NSArray arrayWithObjects:self.navItem, nil]; //创建导航条中按钮...创建按钮 :  //创建第一个按钮 UIBarButtonItem * buttonItem = [[UIBarButtonItem alloc] initWithTitle:@"键盘附件

    6.8K20

    iOS导航栏基础效果配置

    标题设置 self.navigationItem.title = @"标题"; 复制代码 正常情况下,控制器标题会默认作为导航标题 前景色 self.navigationController.navigationBar.barTintColor...UIStatusBarStyleLightContent; } - (BOOL)prefersStatusBarHidden { return YES; } 复制代码 若iOS7...设置返回按钮 //只设置颜色 self.navigationController.navigationBar.tintColor = [UIColor orangeColor]; 复制代码 //设置成图片...shouldReceiveTouch:(UITouch *)touch{ return self.childViewControllers.count > 1; } 复制代码 导航栏透明和底部分隔线 //设置透明背景图...//全局设置导航栏主题,只在AppDelegate中有效, 或者是UINavagaitonController中RootController 中设置有效 - (void)setNavigationControllerAppearance

    1.6K10

    iOS小技能:右滑返回

    引言 原理:利用系统返回手势interactivePopGestureRecognizer进行实现 使用场景:返回按钮有点小,不好触发返回时,可借助右滑返回来提升用户体验 I 添加右滑返回手势 1.1...setNavigationBarHidden:NO animated:NO]; // viewController.hidesBottomBarWhenPushed =YES; //设置左边按钮...)没采用系统默认实现,发生当前不可以手势返回,可先检查为什么当前状态,系统不允许你手势返回,例如是否隐藏了 navigationBar,或者隐藏了系统返回按钮?...WKWebViewConfiguration *config = [[WKWebViewConfiguration alloc] init]; // 创建设置对象...//设置请求User-Agent信息中应用程序名称 iOS9后可用 config.applicationNameForUserAgent = @"ChinaDailyForiPad";

    2.2K30

    iOS---iPad开发及iPad特有的特技

    1.在控制器中得到设备旋转方向 在 iOS8及以后,屏幕就只有旋转后屏幕尺寸之分,不再是过期旋转方向。...按钮,然后弹出UIPopoverController 创建UIPopoverController控制器内容控制器添加到UIPopoverController上 1>设置内容控制器(并需先创建内容控制器...设置popView大小(默认控制器有多大就显示多大)(120, 44 * 3) UIPopoverController方法popoverContentSize 内容控制器中设置方法 self.preferredContentSize...self.contentSizeForViewInPopover /ios7过时/ 3>设置在什么地方显示 调用方法 /** * 弹出UIPopoverController方法(一) * *...@param item 围绕着哪个UIBarButtonItem显示 * @param arrowDirections 箭头方向 * @param animated

    2.6K70

    iOS右滑返回实现【修订】

    引言 原理:利用系统返回手势interactivePopGestureRecognizer进行实现 使用场景:返回按钮有点小,不好触发返回时,可借助右滑返回来提升用户体验 在这里插入图片描述 I 、...{ [super viewDidLoad]; //设置右滑返回手势代理为自身 __weak typeof(self) weakself = self; if ([self...setNavigationBarHidden:NO animated:NO]; // viewController.hidesBottomBarWhenPushed =YES; //设置左边按钮...)没采用系统默认实现,发生当前不可以手势返回,可先检查为什么当前状态,系统不允许你手势返回,例如是否隐藏了 navigationBar,或者隐藏了系统返回按钮?...自定义导航条rightBarButtonItem,采用initWithCustomView:rightBtn设置rightBtn.frame,让文字更大,更容易点击 https://kunnan.blog.csdn.net

    1.7K20
    领券