在 UINavigationBar 上创建一个自定义左后按钮,左侧带有标准箭头

2023-12-26

当我创建自定义后退按钮时,我使用以下代码:

    UIBarButtonItem *leftButton = [[UIBarButtonItem alloc]initWithTitle:@"Yeah" style:UIBarButtonItemStyleBordered target:self action:@selector(backButtonPressed:)];
self.navigationItem.leftBarButtonItem = leftButton;

这工作正常,我得到这个结果:

我会得到相同的结果,但左侧有一个箭头,如下所示(当它是标准后退按钮,而不是自定义按钮时):

我怎样才能简单地添加这个箭头?


最后,这是我用标准左箭头定义后退按钮标题的代码片段在当前视图中, not 在父视图中 :

- (void)viewDidLoad {
    [super viewDidLoad];

    [self setTitle:@"Current View"];

    // Get the previous view controller
    UIViewController *previousVC = [self.navigationController.viewControllers objectAtIndex:self.navigationController.viewControllers.count - 2];

    // Create a UIBarButtonItem
    UIBarButtonItem *barButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"FooBar" style:UIBarButtonItemStyleBordered target:self action:@selector(yourSelector)];

    // Associate the barButtonItem to the previous view
    [previousVC.navigationItem setBackBarButtonItem:barButtonItem];
}

结果如下:

Note :但是,由于无法在 backBarButtonItem 上添加操作,因此您可以参考这篇很棒的文章 https://stackoverflow.com/a/19132881/2791407如果你想要的话。

更新为 Swift

// Prev - no chevron...
//navigationItem.leftBarButtonItem = UIBarButtonItem(title: "Back !", style: .plain, target: self, action: #selector(backPressed))

// adds the chevron
let vc = navigationController?.viewControllers.first
let button = UIBarButtonItem(title: "Go Back", style: .plain, target: self, action: #selector(backPressed))
vc?.navigationItem.backBarButtonItem = button
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 UINavigationBar 上创建一个自定义左后按钮,左侧带有标准箭头 的相关文章

随机推荐

  • React + Material-UI - 警告:Prop className 不匹配

    由于分配的类名不同 我很难理解 Material UI 组件中客户端和服务器端样式渲染之间的差异 首次加载页面时 类名被正确分配 但刷新页面后 类名不再匹配 因此组件失去其样式 这是我在控制台上收到的错误消息 警告 道具className不
  • POST 请求适用于 Postman,但不适用于 Guzzle

    在我的 Laravel 应用程序中 我定期需要使用 Guzzle 将数据 POST 到 API API 使用不记名令牌进行身份验证 并请求和接受原始 json 为了进行测试 我使用 Postman 访问了 API 一切都运行良好 邮递员标题
  • 使用 mod_rewrite 代理 url

    例如我有一个域名 http example com 和另一个域 http reallylargerdomain name com 我想要有人访问http example com projects http example com proje
  • 我可以强制 NSURLConnection 从缓存加载吗?

    我曾考虑过编写自定义 url 缓存 但似乎 NSURLCache 应该支持磁盘缓存 我想让我的 iPhone 应用程序使用缓存的响应 而无需访问服务器 直到资源变得陈旧 由我从服务器发回的标头确定 我是否必须使用 NSURLConnecti
  • npm install 发出警告,npm 审计修复不起作用

    我正在开发一个带有 net core Web api 的 Angular 应用程序 当我克隆这个存储库时 我尝试在 Angular 应用程序上运行 npm install 但出现了一个奇怪的错误 npm install npm WARN o
  • 在python中获取活动的gtk窗口

    我如何获得活动的句柄gtk Window在Python中 不是我创建的窗口 而是当前聚焦的窗口 答案实际上与操作系统无关 您可以在 GTK 中完成 您可以使用以下命令从应用程序中获取所有顶级窗口的列表gtk window list topl
  • Rails 3,回形针 - 自定义插值

    我在制作自定义插值时遇到了一些麻烦 浏览了我在网上可以找到的每个示例 但无论我做什么 都没有成功 目前我有这个 Model has attached file photo path gt rails root public images i
  • 在 Netbeans 中包含本机库

    我正在尝试从 java 签名的小程序读取便携式设备 我发现了一个 jmtp 库http code google com p jmtp w list http code google com p jmtp w list访问便携式设备 但是当我
  • 如何正确使用 cv::triangulatePoints()

    我正在尝试用 OpenCV 对一些点进行三角测量 我发现了这个cv triangulatePoints 功能 问题是几乎没有相关的文档或示例 我对此有些疑问 它使用什么方法 我对三角测量做了一些研究 有几种方法 线性 线性 LS 特征值 迭
  • 使用审查表创建 ggplot2 生存曲线

    I am trying to create a Kaplan Meier plot with 95 confidence bands plus having the censored data in a table beneath it I
  • 如何在 pyinstaller 中设置隐藏导入

    我有一个包含多个包的大项目 这些包使用公共包中的一组模块 我尝试使用 pyinstaller 在 Windows 上创建 exe 但找不到通用包 这个被削减的项目也存在同样的问题 我的包的组织方式如下树所示 当我使用 python m my
  • 谷歌云存储控制台内容编码为gzip

    我正在使用 Google Cloud Storage 控制台上传文件 我没有使用任何命令行工具 我想在元数据中将内容编码设置为 gzip z 选项 请看下面的截图 z 值是否正确 我为所有 css 和 js 文件设置了值 z 并在 Page
  • 有没有办法从另一个 Android 应用程序获取 Android 应用程序视图层次结构?

    我正在研究在设备上运行 Android 自动化的方法 无需任何工作站连接 我的方法是这样的 我修改了猴子的源代码 并且能够启动第3方应用程序 我没有源访问权限 我也可以将击键发送到应用程序 但现在我面临另一个问题 我需要访问一些 ui 元素
  • 在 Scala 中使用 Spring @Transactional

    我们有一个混合 Java 和 Scala 的项目 它使用 Spring 事务管理 我们使用 Spring 方面将文件与 Transactional 带注释的方法编织在一起 问题是 Scala 类没有与 Spring 事务方面交织在一起 如何
  • HttpClient:禁用分块编码

    我正在使用 Apache Commons HttpClient 和 Restlet 来调用 Restful Web 服务 不幸的是 我的服务器 基于 Ruby on Rails 不喜欢Transfer Encoding chunkedHtt
  • 从 [[class alloc] init] 返回 nil 被认为是好的做法吗?

    这是 Objective C 中的常见习惯用法吗 我只在 NSImage alloc initWithContentsOfFile str 上看到过它 它总是让我认为存在内存泄漏 因为我调用了 alloc 口头禅是 调用 alloc 并且您
  • 在await调用之后,它不会执行下一行[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 const blabla async gt const foobar async gt return new Promise re
  • 无法导入 com.google。 .... 为什么?

    我只是尝试编译并运行示例项目 http developer android com training location geofencing html http developer android com training location
  • 创建一个目录并使用“open”返回一个dirfd

    我想用 C 创建一个文件树并避免可能的竞争条件 我的意图是使用open 3 创建根目录并open会返回一个目录文件描述符 dirfd 我将给后续openat 3 mkdirat 3 调用创建树 int dirfd open path O D
  • 在 UINavigationBar 上创建一个自定义左后按钮,左侧带有标准箭头

    当我创建自定义后退按钮时 我使用以下代码 UIBarButtonItem leftButton UIBarButtonItem alloc initWithTitle Yeah style UIBarButtonItemStyleBorde