gpt4 book ai didi

objective-c - 如何将自定义 uibarbuttonItem 添加到所有 View Controller 中的导航项?

转载 作者:行者123 更新时间:2023-11-28 20:33:50 24 4
gpt4 key购买 nike

我正在尝试将自定义 UIBarButtonItem 添加到我的 navigationItem。这个按钮将在我所有的 View Controller 中可用。因此,不是将它添加到每个 viewDidLoad 中的每个 viewDidLoad 方法中,而是尝试将它添加到我的应用程序委托(delegate)类中的单独方法中,我将在 中调用该方法viewDidLoad 方法。这是我的代码:

 UIImage* image = [UIImage imageNamed:@"some-header-icon.png"];
CGRect frame = CGRectMake(0,0,image.size.width,image.size.height);
UIButton* hellBtn = [[UIButton alloc] initWithFrame:frame];
[hellBtn setBackgroundImage:image forState:UIControlStateNormal];
[hellBtn setShowsTouchWhenHighlighted:NO];
[hellBtn addTarget:self action:@selector(goToHell) forControlEvents:UIControlEventTouchUpInside];

UIBarButtonItem* rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:hellBtn];
[self.nav.navigationController.navigationItem setRightBarButtonItem:rightBarButtonItem];
[hellBtn release];
[rightBarButtonItem release];

如果我在任何 viewController 的任何 viewDidLoad 中替换相同的代码博客并更改

[self.nav.navigationController.navigationItem setRightBarButtonItem:rightBarButtonItem];

通过:

[self.navigationItem setRightBarButtonItem:rightBarButtonItem];

它工作得很好。知道为什么吗?

最佳答案

为 ex 创建 UIViewController 的子类。 UIViewControllerBase,覆盖 viewDidLoad 方法,并在其中创建您的 rightBarButtonItem 并设置它。然后让所有 Controller 继承 UIViewControllerBase - 简单的 OOP 场景。

关于objective-c - 如何将自定义 uibarbuttonItem 添加到所有 View Controller 中的导航项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11310180/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com