【问题标题】:UIBarButtonItem action selector working for iPad but not for iPhoneUIBarButtonItem 动作选择器适用于 iPad 但不适用于 iPhone
【发布时间】:2012-11-05 02:32:19
【问题描述】:

以下代码将 UIBarButtonItem 添加到我的导航控制器。当我单击 iPad 模拟器上的条形按钮时,选择器 buyApp 会被调用,但是相同的选择器 buyApp 不会在 iPhone 模拟器上被调用。

UIBarButtonItem *buyButton = [[UIBarButtonItem alloc] init];
buyButton.title = NSLocalizedString(@"BUY", nil);
[buyButton setTarget:self];
[buyButton setAction:@selector(buyApp:)];
self.navigationItem.rightBarButtonItem = buyButton;

更新:我正在将 xib 用于 UI,并将其 viewcontroller 推送到导航控制器上。

【问题讨论】:

  • 它对我来说工作正常..
  • 我试过你的代码,它在两个模拟器中都运行良好。您应该提供有关如何设置应用程序的更多信息。您是在使用故事板、xib 还是在代码中完成所有这些工作?您的应用委托中的代码是什么样的?

标签: iphone ios ipad uibarbuttonitem


【解决方案1】:
self.navigationItem.rightBarButtonItem = [[[UIBarButtonItem alloc] initWithTitle:@"BUY" style:UIBarButtonItemStyleBordered target:self action:@selector(buyApp)] autorelease];  

最好试试这个以减少代码行数

【讨论】:

    【解决方案2】:

    好的,我找到了问题所在。代码没有问题。

    问题在于测试。我试图验证功能的方式是使用 NSLog 打印一个字符串。但是,在使用模拟器进行测试时,我使用硬件 -> 设备 -> iPhone 在模拟器之间切换,我看不到 NSLog 输出。

    一旦我明确停止 iPad 模拟器并在 iPhone 模拟器中重新启动应用程序,我就可以获得 NSLog 输出。奇怪的模拟器行为。

    【讨论】:

      猜你喜欢
      • 2011-03-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多