将目标添加到导航栏中的后退按钮

2023-12-02

我正在设置标题和后退按钮的值UINavigationBar如下:

self.navigationItem.title = @"Post";
[self.navigationController.navigationBar setTitleTextAttributes:@{NSForegroundColorAttributeName : [[UIColor blueColor] colorWithAlphaComponent:0.75f],
                                                                  NSFontAttributeName : [UIFont fontWithName:@"HelveticaNeue" size:20]}];
[self.navigationController.navigationBar.backItem setTitle:@"Pop Pop !"];

但我无法将目标添加到后退按钮。我已经尝试过以下方法:

[self.navigationItem.backBarButtonItem setTarget:self];
[self.navigationItem.backBarButtonItem setAction:@selector(goBack:)];

and

self.navigationItem.backBarButtonItem.target = self;
self.navigationItem.backBarButtonItem.action = @selector(goBack:);

但是我的选择器在弹出 viewController 时没有被调用。

enter image description here

如何向 backButton 添加目标,或在弹出 viewController 时调用选择器? (我已经尝试了SO中提到的所有可能的解决方案,但徒劳)

编辑:我更愿意编辑库存后退按钮的行为,而不是将自定义按钮设置为后退按钮。


您无法将目标添加到库存 BackButton,但您可以重写 CustomNavigationController 中的 UINavigationBarDelegate 方法,如下所示:

class CustomNavigationController: UINavigationController {

@IBOutlet weak var ibNavigationBar: UINavigationBar!

    override func viewDidLoad() {
        super.viewDidLoad()

        ibNavigationBar.delegate = self
    }

}

extension CustomNavigationController: UINavigationBarDelegate {
    func navigationBar(navigationBar: UINavigationBar, shouldPopItem item: UINavigationItem) -> Bool {
        for viewController in viewControllers {
            if viewController.title == "YourTitledViewController" {
                popToViewController(viewController, animated: true)
            }
        }
        return false
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将目标添加到导航栏中的后退按钮 的相关文章

随机推荐

  • python selenium无法使用cookie登录youtube帐户

    警告 此线程中提供的 cookie 可能已经无效 因此您应该使用您自己的或其他一些 cookie 来执行此操作 我需要使用以下方式登录我的 YouTube 帐户饼干和硒 我可以发送请求至https www youtube com 与饼干 它
  • boost::random::uniform_real_distribution 在处理器之间应该是相同的吗?

    以下代码在 x86 32 位和 64 位处理器上产生不同的输出 应该是这样吗 如果我将其替换为 std uniform real distribution 并使用 std c 11 进行编译 它将在两个处理器上产生相同的输出 include
  • 分段错误取决于字符串长度?

    我正在编写一个程序 它将使用 getline 从 infile 读取行并将其转换为字符串 将字符串转换为包含字符串的前 m 个非空白字符的 c 字符串 然后将 c 字符串连接成单个 char 数组 示例文件可能如下所示 5 number o
  • 在 C# 中从 HTML 表中检索数据

    我想从 HTML 文档中检索数据 我正在从一个几乎完成的网站上抓取数据 但在尝试从表中检索数据时遇到问题 这是 HTML 代码 div div
  • CASE 相当于嵌套 IIF 语句

    谁能将以下嵌套 IIF 解码为 SQL 中的 CASE 语句 我知道 SQL Server 2012 中允许使用 IIF 但我发现很难轻松掌握嵌套 IIF 逻辑 以下是我的嵌套 IIF 语句 IIF IIF TABLE A Col 1 0
  • pkg-config:未找到命令,在 Windows 7 上使用 cygwin

    我在 Windows 上使用 Cygwin 来运行此命令 g pkgconfig libs cflags opencv I o mergevec mergevec cpp 但我收到一个错误 bash pkg config command n
  • 如何捕获 ES6 Promise 拒绝并完全停止流程?

    假设我有 4 个功能 runA runB runC and runD 使用 ES6 Promise 在一次完全成功的运行中 这些都将依次运行 runA then runB then runC then runD If runA or run
  • 命令超时和连接超时之间的区别

    连接超时和命令超时有什么区别 在我们的应用程序中有时会显示超时错误 当我们将命令超时值增加到 100 默认为 30 时 它就可以工作了 增加命令超时值是否有任何问题 Thanks Mahesh ConnectionTimeout 是您的代码
  • PHP - 正确检查 $_POST['variable'] 是否已发布

    我想检查 POST submit 是否已发布 我原来的代码是 if POST submit 但我有一个带有此代码的 PHP 通知 未定义索引 提交于 因此 要删除该通知 我必须这样写 if isset POST submit 但这是没有意义
  • XGBoost:将 dmatrix 转换为 numpy.array

    我想检查一下DMatrix目的 这文档提到获取行数和列数以及每行切片的方法 dmatrix slice index 但我想使用 numpy 进行更复杂的转换 有没有简单的方法可以转换DMatrix到一个 numpy 数组 DMatrix 是
  • Laravel 更快地查询控制器或视图中的所有内容

    查询控制器中的所有内容并返回每个查询更快 还是在使用视图时查询更快 假设所有模型都有关系 Example 完成控制器中的所有操作然后返回 Public function articlesHome id art Articles find i
  • 什么时候需要在 ISR 中使用 volatile?

    我正在制作嵌入式固件 初始化后的所有事情都发生在 ISR 中 我有它们之间共享的变量 我想知道在什么情况下它们需要是易失性的 我从不阻塞 等待另一个 ISR 的变化 在不使用易失性的情况下 什么时候可以确定实际内存已被读取或写入 每个 IS
  • SolidJS 中的条件样式

    我在 SolidJS 中有一个组件 看起来像这样 const MyComponent Component params gt const votes setVotes createSignal new Set const toggle va
  • 对不同列表中相同索引的元素求和

    我有一个列表列表 其中每个内部列表代表电子表格中的一行 使用我当前的数据结构 如何对具有相同索引的内部列表上的每个元素执行操作 这基本上相当于在电子表格中的列中执行操作 这是我正在寻找的示例 就加法而言 gt gt gt lisolis 1
  • 如何在 Liferay 7 中添加新语言?

    我的问题是如何添加新语言 例如泰语liferay 7 当我检查现有标志时 我发现图像不是 png 而是 svg 但我无法使用图标添加新语言 在这个page jsp我看到图像的构造函数是自动生成的 这段代码描述了svg图像的生成
  • 获取 Windows ‘ShFileOperation’ API 在 Delphi 中递归删除文件

    我正在使用以下代码删除大量文件 function FastDelete const fromDir string Boolean var fos TSHFileOpStruct begin ZeroMemory fos SizeOf fos
  • 如何复制进程的标准输出(复制,而不是重定向)?

    有很多示例展示了如何重定向另一个应用程序的标准输出 但是 我想让应用程序保留其标准输出 并且仅在父进程中检索标准输出的副本 这可能吗 我的场景 我有一些测试 使用 Visual Studio Test Runner 启动外部进程 服务器 来
  • 有没有办法创建 ColoredCheckbox 组件?

    我正在尝试创建一个可重复使用的material ui彩色复选框组件 您将十六进制颜色传递给组件 它会影响复选框颜色 到目前为止我已经明白了 但我想不出一种将颜色传递给 withStyles 的方法 const WhiteCheckbox w
  • 提取两个相似标题之间具有特定单词的段落

    我的文本文件包含类似这样的段落 summary A result oriented and dedicated professional with three years experience in Software Development
  • 将目标添加到导航栏中的后退按钮

    我正在设置标题和后退按钮的值UINavigationBar如下 self navigationItem title Post self navigationController navigationBar setTitleTextAttri