无法在导航栏上添加按钮
我有带有项目的 UItable。我有导航栏等。在表“类别”中的一项上,我放置另一个 UITable,如下所示:
CategoryTableViewController *b = [[CategoryTableViewController alloc]init];
[self.navigationController pushViewController:b animated:YES];
[b release];
现在我想在导航栏中添加“ADD”按钮,并在 *.xib 中添加 UINavigationBarItem 将其连接到插座并像这样添加在 viewDidLoad 中:
self.navigationItem.rightBarButtonItem = self.addButton;
这不起作用(addButton 为空),但是当我在第一个 UITable 中添加用于添加按钮的相同代码时,它工作正常并且添加了“ADD”按钮。
这里可能有什么问题?
I have UItable with items. I have navigation bar etc. On one item in table "Category" I pust another UITable like this:
CategoryTableViewController *b = [[CategoryTableViewController alloc]init];
[self.navigationController pushViewController:b animated:YES];
[b release];
Now I want to add "ADD" button in navigation bar and I add UINavigationBarItem in *.xib connect it to outlets and add it like this in viewDidLoad:
self.navigationItem.rightBarButtonItem = self.addButton;
And this does not work (addButton is null), but when I put the same code for adding button in my first UITable it works fine and "ADD" button is added.
What could be the problem here?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
在应该在导航栏中显示按钮的 ViewController 中,在 viewDidLoad() 方法中键入:
这将在导航栏中的左侧添加一个“添加”样式的按钮,该按钮调用选择器方法:
点击时在同一个类中。在同一类的此方法中,您可以指定添加逻辑。如果此方法应放置在不同的类中,请将目标设置为该类。
这就是解决这个问题的编程方法。方法“-(void) add”是您的 Outlet 在 .xib 方法中使用的方法。
对于您的 .xib 方法,您应该验证 navigationBarButton 的 Outlet 属性是否设置为保留。
In the ViewController that should show the button in the navigation bar type in the viewDidLoad() method:
That will add a "add" styled button to the left in the navigation bar which calls the selector method:
in the same class when it is tapped. In this method in the same class you can specify your add logic. If this method should be placed in a different class, set the target to that.
That is the programatical way to solve this. The method "-(void) add" is what your Outlet has been in the .xib approach.
For your .xib approach you should verify that the Outlet property for the navigationBarButton is set to retain.
self.addButton 为 NULL,因此请确保其不为 NULL。从代码创建一个按钮。
self.addButton is NULL, thus make sure its not NULL. Create a button from code.
是
[super viewDidLoad];
viewDidLoad 方法中的第一个调用吗?如果没有尝试将其放在 viewDidLoad 的最开始处。
is
[super viewDidLoad];
the first call in your viewDidLoad method?If not try to put it at the very beginning of viewDidLoad.