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

编程添加到导航栏的UIBarButtonItem无法调用选择器,而添加到工具栏的按钮调用选择器

的原因可能是导航栏和工具栏的使用方式不同。

导航栏是用于导航控制的组件,通常用于管理视图控制器之间的导航关系。在导航栏中,UIBarButtonItem通常用于显示返回按钮、标题、右侧按钮等。但是,导航栏的按钮是通过target-action机制来触发事件的,而不是直接调用选择器。

要在导航栏中添加UIBarButtonItem,并使其调用选择器,可以通过以下步骤实现:

  1. 创建一个UIBarButtonItem对象,并设置其样式、标题、图标等属性。
  2. 为UIBarButtonItem对象的target属性设置一个目标对象,通常是当前视图控制器。
  3. 为UIBarButtonItem对象的action属性设置一个选择器方法,该方法在目标对象中实现。

示例代码如下:

代码语言:swift
复制
// 在视图控制器中添加导航栏按钮
let barButtonItem = UIBarButtonItem(title: "按钮标题", style: .plain, target: self, action: #selector(buttonTapped))
navigationItem.rightBarButtonItem = barButtonItem

// 选择器方法的实现
@objc func buttonTapped() {
    // 在这里编写按钮点击后的逻辑代码
    print("按钮被点击了")
}

相比之下,工具栏是一个可自定义的工具栏,可以在其中添加各种自定义的按钮。工具栏的按钮可以直接通过选择器来触发事件。

要在工具栏中添加按钮,并使其调用选择器,可以通过以下步骤实现:

  1. 创建一个UIBarButtonItem对象,并设置其样式、标题、图标等属性。
  2. 为UIBarButtonItem对象的target属性设置一个目标对象,通常是当前视图控制器。
  3. 为UIBarButtonItem对象的action属性设置一个选择器方法,该方法在目标对象中实现。

示例代码如下:

代码语言:swift
复制
// 在视图控制器中添加工具栏按钮
let barButtonItem = UIBarButtonItem(title: "按钮标题", style: .plain, target: self, action: #selector(buttonTapped))
toolbarItems = [barButtonItem]

// 选择器方法的实现
@objc func buttonTapped() {
    // 在这里编写按钮点击后的逻辑代码
    print("按钮被点击了")
}

需要注意的是,导航栏和工具栏的使用方式可能因不同的开发框架或编程语言而有所差异。以上示例代码是基于Swift语言的iOS开发环境,其他环境可能会有一些细微的差别。

推荐的腾讯云相关产品和产品介绍链接地址:

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

相关·内容

UI篇-UINavigationController之易忘补充

设置导航背景图片 (多见于导航背景颜色是渐变颜色,使用一张图片)但是这张图片设置好以后,所有的控件Y坐标都会下移64,也就是说,这张图片会占用屏幕64pt 高度屏幕,而且无法被普通试图覆盖使用...在入口类中全局设置就可以达到统一导航颜色效果。  ...上面设置为YES,下面的为NO 关于导航返回:     首先ios7 之后只要使用系统自带导航效果就有手动滑动返回效果。但是当自定义返回按钮时,这种手动滑动返回效果就没有了。...,然后包含navigationbar形成整个nv导航。...,通过设置 self.navigationController.toolbarHidden = NO来显示工具栏工具栏内容可以通过viewControllertoolbarItems来设置,显示顺序和设置

2.1K20

iOS键盘、选取器上工具栏

很遗憾,选取器也没有自带这两个按钮,还是需要使用工具栏UIToolbar来做这两个按钮。 本文就根据实例来讲解怎么在键盘和选取器上添加工具栏按钮。...done按钮按钮背景图片就是那个小键盘图标,然后把按钮转换成一个UIBarButtonItem,这种类型对象才可以放在工具栏上。...我们用了一个UIBarButtonItem组成数组,因为可以放多个按钮,只要在数组中继续添加就可以了,最后将数组作为工具栏Items添加进去就可以了。...,也就是附加视图,设置后会自动将工具栏添加到适当位置,也就是键盘上方。...,还记得上面的delegate中设置了一下只有当不是选取器textfield时才显示键盘工具栏吗,如果不判断一下,两个工具栏会冲突,结果就是什么都不显示,创建工具栏代码如下: // 工具栏按钮 -

1.5K10
  • PyCharm入门教程——用户界面导览「建议收藏」

    工具栏复制了主菜单基本命令,以便快速访问。默认情况下,主工具栏是隐藏。要显示它,请从主菜单中选择查看工具栏。 Navigation bar ——项目工具窗口快速替代。...使用View导航隐藏或显示导航;按Alt+Home将应用程序焦点移到导航。 Status bar ——指示项目、整个IDE状态,并显示各种警告和信息消息。...2.Main toolbar 主工具栏包含复制基本命令以快速访问按钮。 默认情况下,主工具栏是隐藏。要显示它,请选择主菜单上View | Toolbar。...菜单和工具栏按钮操作说明显示在状态左侧。 如果您知道要执行哪个操作,但不知道在哪里找到它,请按Ctrl+Shift+A,键入操作名称,然后从建议列表中选择它。...在右侧,您可以访问run/debug configuration选择器,运行图标toolwindows toolWindowRun svg和调试图标操作startDebugger svg按钮,版本控制按钮

    3.7K10

    【Hybrid开发高级系列】ReactNative(七) —— RN组件专题

    一个常见用例是为每一页设置backgroundColor     tintColor字符串型在导航按钮使用颜色 1.4 iOS选择器 1.4.1 Props onValueChange 函数型...工具栏可以显示一个标志,导航图标(如汉堡包菜单),标题 和副标题和操作列表。标题和子标题被扩展这样以来标志和导航图标显示在左边,标题和副标题在中间并且操作 在右边。         ...如果工具栏具有唯一子级,它将显示在标题和操作之间。...subtitle string         设置工具栏副标题。     subtitleColor string         设置工具栏副标题颜色。     ...title string         设置工具栏标题。     titleColor string         设置工具栏副标题颜色。

    55740

    UINavigationController 导航控制器概念属性方法

    NavigationItem,和NavigationController一样都是用push和pop方式推进推出各自管理东西NavigationItem包含多个UIBarButtonItem NavigationController...*barHideOnSwipeGestureRecognizer; 10、屏幕滑动时候是否隐藏导航,常用于tableView,上滑隐藏导航,下滑显示,带动画效果 @property (nonatomic...(nullable, nonatomic, weak) id delegate; 16、当一个controller被添加到导航中后,系统会为它分配一些属性...(1)通过一个自定义导航工具栏创建导航控制器 - (instancetype)initWithNavigationBarClass:(nullable Class)navigationBarClass...toolbarClass:(nullable Class)toolbarClass; (2)使用系统默认导航工具栏,创建一个导航控制器同时设置一个根视图控制器 - (instancetype)initWithRootViewController

    2.1K60

    UINavigationController

    :(BOOL)animated; //回到根控制器(栈底控制器) - (NSArray *)popToRootViewControllerAnimated:(BOOL)animated; 如何修改导航内容...导航内容由栈顶控制器navigationItem属性决定 UINavigationItem有以下属性影响着导航内容 //左上角返回按钮 @property(nonatomic,retain...retain) UIBarButtonItem *rightBarButtonItem; 清空导航条背景图片 // 清空导航条背景图片,系统判断当前是否为Nil,如果为nil,系统还是会自动生成一张背景图片...UIBarMetricsDefault]; [self.navigationController.navigationBar setShadowImage:[[UIImage alloc] init]]; iOS7之后导航...iOS7之后导航条上德图片默认会渲染成蓝色 代码改变图片原始颜色 获得导航上图片 self.navicationItem.rightBarButtonItem.image; image];

    1.4K60

    从零开始完成一副西南地区全图地图版面设计

    [符号]按钮,打开符号选择器: 在[符号选择器]对话框中,将标注字体大小设置为:[12]。...返回视图界面,显示效果如下图所示: 3 创建地图版面 基于上述操作,将图层[省级行政区]渲染方式设置为[唯一值渲染,基于NAME字段]。 点击视图工具栏,切换到布局视图界面。...通过标准工具栏[放大、缩小、平移]按钮,可以调整地图版面中数据框显示比例、范围,如下图所示:适当调整使数据只显示西南部分。 然后添加各种元素到地图版面中。...制作一个完整地图至少需要标题、图例、指北针、比例尺四种元素。 点击插入工具栏插入文本,编辑标题,输入西南地区全图。双击可以编辑,调整大小和位置。...在图层列表中右击省级行政区图层,打开属性表,选中西南地区几个省,在地图界面中实现突出显示; 点击插入工具栏,插入指北针和比例尺;在地图版面中双击已添加“比例尺”,可以修改其属性。

    1.2K20

    最新iOS设计规范五|3大界面要素:控件(Controls)

    (Bars) ,可以告诉用户在APP中当前在所在位置、能提供导航,还可能包含用于触发操作和传递信息按钮或其他元素。包括6种:导航、搜索、侧边、状态、标签工具栏。...系统按钮 系统按钮通常出现在导航工具栏中,也可以在任何地方使用。 ? 在标题中使用动词。特定于操作标题显示按钮是交互式,并说明单击该按钮时会发生什么。 使用标题格式命名标题。...将进度条用于持续时间明确任务。进度条非常适合显示任务状态,尤其是当它帮助传达任务需要完成多长时间时。 在导航工具栏中隐藏轨道未填充部分。默认情况下,进度条轨道包含已填充和未填充部分。...当在导航工具栏中使用时,进度应配置为隐藏轨道未填充部分。 进度条外观可以自定义。可以调整进度条外观以匹配APP设计。例如,您可以为轨道填充指定自定义色调或图像。...如果你需要工具栏导航中使用类似功能,请改用按钮,并提供两个不同图标来传达不同状态。 避免在开关中添加说明标签。关于开关打开或关闭,用户是很明确

    8.6K30

    Cocoa编程中视图控制器与视图类详解

    导航控制器自动构建并处理Back按钮; 3. 导航控制器提供简单菜单可帮助用户进行自定义控件。4....设置导航按钮并不是去设置导航本身。一切都是在被推入UIViewController子类内部执行推入请求和相关导航定制(如:右键按钮)。...其描述了导航上显示内容,正好UIViewController另有一导航项属性navigationItem包括左按钮(leftBarButtonItem)、右按钮(rightBarButtonItem...视图控制器剖析 视图控制器有一个导航项,一个工具栏子项集以及一个tabbarItem项与其关联。 3....控制器加载视图过程 当调用视图控制器view属性时,视图控制器会先调用loadView方法加载视图,因此,可以在loadView方法中创建所有的视图,这是比较好编程惯例。

    5.1K50

    【MFC拓展库】上海道宁与BCGSOFT合作为您带来专业Micrisoft Windows开发业务组件

    它不仅仅是一个新控件 - 它是一种新用户界面理念。功能区控件将传统工具栏和菜单替换为选项卡式组(类别)。每个选项卡在逻辑上分为面板,每个面板可能包含各种控件和命令按钮。...这是一个完全换肤界面,可以应用于各种控件集,例如功能区、菜单、工具栏、停靠窗格等。这种风格主要特点是:扁平、Windows 8/10风格UI。带有“返回”圆形按钮全屏后台视图。...功能区背景图像支持05、可定制工具栏和菜单Library提供了一种强大简单工具栏/菜单自定义机制,类似于Microsoft Office和Visual Studio。...用户可以简单地在工具栏和菜单之间拖放按钮。“文件”或“编辑”等所有类别都是从应用程序资源自动构建。自定义机制允许修改工具栏/菜单项外观,更改项文本/图标,甚至使用库图像编辑器创建/修改图像。...02、语言定义 XML 模式编辑器允许使用我们强大灵活XML方案定义机制定义任何所需编程语言。XML数据可以从内部应用程序资源、外部文件或Internet加载。

    5.6K20

    JQuery从入门到实战

    所谓库,就是一个 JS 文件,里面封装了很多预定义函数,比如获取元素,执行隐藏、移动等,目的就 是在使用时直接调用,不需要再重复定义,这样就可以极大地简化了 JavaScript 编程。...对象,不是 JS 方式获得 DOM 对象,二者 API 方法不能混合使用,若想使用对方 API,需要进行对象转换。...6. before(element) 添加到当前元素前面,两者之间是兄弟关系,由添加者对象调用 7. after(element) 添加到当前元素后面..."); $("#div").append(span); }); //按钮二:将加油添加到城市列表最下方 $("#btn2").click...before(element):添加到当前元素前面,两者之间是兄弟关系,由添加者对象调用。 after(element):添加到当前元素后面,两者之间是兄弟关系,由添加者对象调用

    15.3K30

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

    2.3 回退按钮 2.3.1 回退按钮自定义 UIBarButtonItem * backItem = [[UIBarButtonItem alloc] initWithImage: [UIImage...        最近iOS项目中要求导航返回按钮只保留那个箭头,去掉后边文字,在网上查了一些资料,最简单且没有副作用方法就是: [[UIBarButtonItem appearance] setBackButtonTitlePositionAdjustment...2.5.4 隐藏返回按钮 [self.navigationItem setHidesBackButton: YES]; 2.5.5 设置导航标题字体颜色和大小     方法一:(自定义视图方法,...: YES]; [super pushViewController: viewController animated: animated]; Tabbar显示,则只有在Pop函数调用前执行才真正起作用...,标题和返回按钮文字颜色 http://blog.csdn.net/mad1989/article/details/41516743 IOS自定义导航题目和返回按钮标题 http://blog.csdn.net

    43520

    iOS多控制器之UINavigationController&UITableBarController1. 多控制器2. UINavigationController3. UITableBarCont

    Paste_Image.png 2.5 修改导航内容 导航内容由栈顶控制器navigationItem属性决定 UINavigationItem有以下属性影响着导航内容 //左上角返回按钮...@property(nonatomic,retain) UIBarButtonItem *backBarButtonItem; //中间标题视图 @property...childViewControllers 导航条中按钮使用原始图片不进行系统渲染: [image imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal...]; navigationController 和navigationItem都是通过"控制器"对象调用 navigationBar 是通过"导航控制器"对象调用 如果想改变导航条整体样式 那么应该找...,和导航控制器中不同,展现在眼前导航控制器根视图控制器也就是第一个添加到导航控制器上视图

    1.3K40

    如何在 wxPython 中创建多个工具栏

    在GUI编程领域,wxPython已经成为一个功能强大且通用库,使开发人员能够轻松制作令人惊叹图形用户界面。在众多基本组件中,工具栏在为用户提供对各种功能快速访问方面发挥着至关重要作用。...使用 wxPython,您可以使用各种小部件(例如按钮、文本控件,当然还有工具栏)设计具有视觉吸引力且响应迅速桌面应用程序。...使用 CreateToolBar() 方法为窗口创建工具栏。 使用 AddTool() 方法将三个工具添加到工具栏: 带有相应图标“icon_open.bmp”“打开”。...使用 AddControl() 方法将组合框(下拉列表)作为工具 4 添加到工具栏中,其中包含“选择 1”和“选择 2”。 初始化工具栏以显示它。...工具 3 “突出显示”标签和“图标突出显示.bmp”图标 它被设计为可审核工具(切换按钮)。 使用 AddControl() 方法,组合框(下拉列表)作为工具 4 添加到菜单中。

    26820

    iOS 9人机界面指南(四):UI元素(下)- 腾讯ISUX

    活动指示器: 当任务进行和加载时旋转,任务完成后自动消失 不支持用户交互行为 在工具栏或主视图中使用活动指示器来告知用户任务或加载正在进行中,但并不提示该过程何时会结束。 不要使用静止活动指示器。...添加联系人按钮: 展示联系人列表 帮助用户将一个联系人添加到当前联系人按钮所在视图中 使用添加联系人按钮让用户在不需要使用键盘情况下就可以方便地访问到联系人。...4.3.10 进度视图 进度视图展示了任务或进程进度(下图是iOS默认邮件App工具栏)。 ?...进度条(Bar).此样式比默认样式细,适合用在工具栏中。 ? 当一个任务存在明确进程,可以使用进度条来给与用户反馈,尤其在需要明确告诉用户这个任务大约需要多少时间完成时候。...举个例子,如果一个模态视图中含有导航条和取消或完成任务按钮,这里导航条样式应该与你app中导航条一样。 合适的话,在模态视图里加入可以说明任务内容标题。

    13.2K30

    你应该选择Cinnamon作为Linux桌面环境十个理由

    桌面部件是指那些小型且功能专一应用,我们可将它们随意添加到桌面当中。Cinnamon提供选项包括CPU监控、磁盘监控、天气应用、便签、桌面相框、时间与日期等。 4. 速度。...Cinnamon面板作为一款工具栏非常易用,其中提供用于启动程序菜单、基本系统托盘与应用选择器。右键点击程序图标,选择“Add to panel”即可将应用添加至程序启动中。...大家还可以将启动图标添加到桌面中以及Cinnamon“Favorites”启动栏内。另外,进入“Edit”模式即可对各图标进行重新排序。 7. 灵活性。...有时候,我们很难找到已经被最小化或者隐藏运行应用。Cinnamon提供了我最喜爱功能之一,即直接拖动运行中应用按钮,并在选择中进行重新排列。这意味着我能更轻松地找到对应窗口。...工作区选择器位于Cinnamon面板中,且会显示每个工作区窗口缩略图。不过,我发现工作区选择器有时候无法及时跟上窗口显示位置,所以我通过调整让选择器仅显示工作区数量,而非工作区内具体窗口。

    4.1K50
    领券