1

以下代码将 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 推送到导航控制器上。

4

2 回答 2

0

好的,我发现了问题所在。代码没有问题。

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

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

于 2012-11-05T10:19:08.710 回答
0
self.navigationItem.rightBarButtonItem = [[[UIBarButtonItem alloc] initWithTitle:@"BUY" style:UIBarButtonItemStyleBordered target:self action:@selector(buyApp)] autorelease];  

最好尝试这样做以减少代码行

于 2012-11-05T04:54:31.110 回答