【问题标题】:RightBarButtonItem Does Not Appear in Navigation BarRightBarButtonItem 未出现在导航栏中
【发布时间】:2013-01-26 23:03:32
【问题描述】:

这让我很生气!我只是想以编程方式在我的导航栏上添加一个右侧的“flash”按钮,无论出于何种原因,我都无法让它出现。我的代码如下。谁能帮我?提前致谢。

 //Note: flashButton is declared as a UIButton property in .h, and synthesized in .m        
    UIView *flashContainer = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 36, 36)];

    [flashButton addTarget:self action:@selector(toggleTorch) forControlEvents:UIControlEventTouchUpInside];
    [flashButton setBackgroundImage: [UIImage imageNamed:@"FlashIconInactive_small.png"] forState:UIControlStateNormal];
    [flashButton setBackgroundImage: [UIImage imageNamed:@"FlashIconActive_small.png"] forState:UIControlStateHighlighted];

    [flashContainer addSubview:flashButton];
    [flashButton sizeToFit];

    UIBarButtonItem *flashButtonItem = [[UIBarButtonItem alloc] initWithCustomView:flashContainer];

    scannerVC.delegate = self;
    scannerVC.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(cancelTapped)];
    [[scannerVC navigationItem] setRightBarButtonItem:flashButtonItem];

【问题讨论】:

  • 所以左键可以正常工作吗?是正确的吗?
  • 正确,@Nabou,左侧按钮出现并且工作正常。

标签: ios xcode uinavigationbar uibarbuttonitem uinavigationitem


【解决方案1】:

flashButton 是否通过 IBOutlet 连接到 xib 或情节提要中的按钮?如果没有,您需要使用+[UIButton buttonWithType:] 创建一个 UIButton 实例。

另一个要尝试的测试是在第一行(addTarget: one)上设置一个断点,然后在调试器中输入po flashButton。输出是什么?如果为 nil,则您的按钮不存在,需要创建。

【讨论】:

  • 我已经声明了 'UIButton *flashButton' 并在我的 .h(在我的 .m 文件中合成)中将它作为一个属性。我以编程方式完成这一切,而不是使用 XIB/Storyboard。 @Kris 这还不够吗?
  • @JRoss,不,您必须为按钮分配内存。您可以为此使用+[UIButton buttonWithType:]。如果您声明为@property,则需要将其用作self.flashButton,而不是单独使用flashButton
  • 谢谢@Kris!我觉得自己像个白痴,但有时我会忘记基本知识!我添加了以下行以使我的代码正常工作: flashButton = [UIButton buttonWithType:UIButtonTypeCustom];
  • @JRoss,如果你想使用@property,你仍然需要将其更改为self.flashButton,Kris忘了提及。
  • 我删除了属性/合成,它工作正常。我认为我的 viewController 不需要将其作为属性。我有理由将其设为财产吗? @ACB
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-30
  • 1970-01-01
  • 1970-01-01
  • 2017-08-12
相关资源
最近更新 更多