我正在try 向导航控制器的顶部栏添加刷新按钮,但没有成功.

标题如下:

@interface PropertyViewController : UINavigationController {

}

以下是我试图添加它的方式:

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
    if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) {
        UIBarButtonItem *anotherButton = [[UIBarButtonItem alloc] initWithTitle:@"Show" style:UIBarButtonItemStylePlain
                                          target:self action:@selector(refreshPropertyList:)];      
        self.navigationItem.rightBarButtonItem = anotherButton;
    }
    return self;
}

推荐答案

try 在viewDidLoad中执行此操作.通常情况下,您应该将您所能做的任何事情都推迟到那个点,不管怎样,当UIViewController被初始化时,它可能还需要很长一段时间才能显示,提早工作和占用内存是没有意义的.

- (void)viewDidLoad {
  [super viewDidLoad];

  UIBarButtonItem *anotherButton = [[UIBarButtonItem alloc] initWithTitle:@"Show" style:UIBarButtonItemStylePlain target:self action:@selector(refreshPropertyList:)];          
  self.navigationItem.rightBarButtonItem = anotherButton;
  // exclude the following in ARC projects...
  [anotherButton release];
}

至于它目前不能工作的原因,在没有看到更多代码的情况下,我不能百分之百肯定地说,但是在初始化和视图加载之间发生了很多事情,您可能正在做一些导致在这两者之间重置NavigationItem的事情.

Ios相关问答推荐

[NSJSONSerializationdataWithJSONObserver:选项:错误:]:SON写入中无效的顶级类型

SwiftUI拖动手势和内容拖动时的奇怪行为( skip /卡顿)

在Swift5中,将某些属性值从一个类复制到另一个类实例

由于已存在同名项目,因此无法将Mapbox.xcframework-ios.sign复制到Signature中

拖动手势导致 sim 崩溃 Swift UI

如何删除点击时按钮的不透明动画?

如何在用户点击的位置使用SceneKit渲染球体?

在标签中显示多个计数器但在同一屏幕(Swift,IOS)

以正确的方式在 Text() 中使用 colored颜色

将值传递给导航链接视图中的文本框

SwiftUI 文本字段代理绑定代码忽略空格不起作用?

如何在不同设备的segment控制中管理文本大小(text size)?

无法同时满足约束 - 没有适当的约束

未找到签名证书​​iOS Distribution

如何在 iOS 的 xib 中设置十六进制 colored颜色 代码

在 iOS 8.1 模拟器上更改语言不起作用

以编程方式 Select UITextField 中的所有文本

iOS在应用程序中下载并保存图像

如何删除UITableView中最后一个单元格的最后一个边框?

Xcode 5 和 iOS 7:架构和有效架构