【问题标题】:Can't add button on navigation bar无法在导航栏上添加按钮
【发布时间】:2011-03-11 13:07:05
【问题描述】:

我有带有项目的 UItable。我有导航栏等。在“类别”表中的一个项目上,我推送另一个 UITable,如下所示:

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

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

self.navigationItem.rightBarButtonItem = self.addButton;

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

这可能是什么问题?

【问题讨论】:

  • 也许我的回答太快了,但是“在我的第一个 UITable 中”到底是什么意思?同一个viewController?哪种方法?
  • 当我的应用程序启动时,它会显示第一个带有数据的 UITable。当我单击类别时,它会推送第二个 UITable。如果我将按钮添加到第一个表它可以工作,但在第二个它不会。
  • 并且两个 tableviewcontroller 实例共享同一个类?
  • 在将 self.addButton 分配给 rightBarButtonItem 之前是否已分配/初始化?

标签: iphone objective-c uitableview uinavigationbar uibarbuttonitem


【解决方案1】:

在应该在导航栏中显示按钮的 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 属性是否设置为保留。

【讨论】:

  • 这行得通。我保留了 IBOutlet 并将其连接到示例项目中,但在我的应用程序中却没有。但是这种程序化的方式是有效的。谢谢:)
  • 我总是以编程方式处理导航栏问题,因为我从来没有让它与 IB 一起正常工作:)
【解决方案2】:

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

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

【讨论】:

    【解决方案3】:

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

    如果不尝试把它放在 viewDidLoad 的最开始。

    【讨论】:

    • 是的,超级viewDidLoad在方法中是第一位的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-21
    • 1970-01-01
    • 1970-01-01
    • 2015-05-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多