我正在尝试将刷新按钮添加到导航控制器的顶部栏,但没有成功。
这是标题:
@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; }
尝试在 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]; }
至于为什么它目前不起作用,我不能在没有看到更多代码的情况下 100% 肯定地说,但是在 init 和视图加载之间发生了很多事情,你可能正在做一些导致 navigationItem 重置的事情之间。