无法在导航栏上添加按钮

时间:2011-03-11 13:07:05

标签: iphone objective-c uitableview uinavigationbar uibarbuttonitem

我有UItable项目。我有导航栏等。在表“类别”中的一个项目上,我发誓另一个UITable:

CategoryTableViewController *b = [[CategoryTableViewController alloc]init];
        [self.navigationController pushViewController:b animated:YES];
        [b release];

现在我想在导航栏中添加“ADD”按钮,我在* .xib中添加UINavigationBarItem将它连接到outlet并在viewDidLoad中添加如下:

self.navigationItem.rightBarButtonItem = self.addButton;

这不起作用(addButton为null),但是当我在第一个UITable中添加相同的代码添加按钮时,它工作正常,并添加了“ADD”按钮。

这可能是什么问题?

3 个答案:

答案 0 :(得分:2)

在ViewController中应该在导航栏中显示按钮,在viewDidLoad()方法中输入:

self.addToolbarButton = [[[UIBarButtonItem alloc]           
initWithTitle:@"Add", nil)
    style:UIBarButtonSystemItemAdd 
    target:self
    action:@selector (add)] autorelease];
self.navigationItem.leftBarButtonItem = addToolbarButton;

这将在导航栏左侧添加一个“添加”样式按钮,调用选择器方法:

-(void) add {...}
点击时在同一个班级中

。在同一类中的此方法中,您可以指定添加逻辑。如果此方法应放在不同的类中,请将目标设置为该值。

这是解决这个问题的方法。方法“ - (void)add”是你的Outlet在.xib方法中的用法。

对于.xib方法,您应该验证navigationBarButton的Outlet属性是否设置为retain。

答案 1 :(得分:1)

self.addButton为NULL,因此请确保其不为NULL。从代码创建一个按钮。

UIBarButtonItem *button = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(doneMeasuring:)];

答案 2 :(得分:0)

[super viewDidLoad]; viewDidLoad方法中的第一个调用?

如果没有尝试将它放在viewDidLoad的最开头。