2012-11-05 123 views
1

以下代码将UIBarButtonItem添加到我的导航控制器。当我单击iPad模拟器上的栏按钮时,选择器buyApp确实会被调用,但是同样的选择器buyApp在iPhone模拟器上不会调用。UIBarButtonItem动作选择器适用于iPad,但不适用于iPhone

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

更新:我使用xib用于用户界面,并在导航控制器上推它的viewcontroller。

+0

它对我的工作很好.. – Rajkumar

+0

我试过你的代码,并且它在两个模拟器中都工作正常。您应该提供更多有关您的应用程序设置的信息。你在使用storyboard,xibs还是全部使用代码?你的应用程序委托中的代码是什么样的? – rdelmar

回答

0
self.navigationItem.rightBarButtonItem = [[[UIBarButtonItem alloc] initWithTitle:@"BUY" style:UIBarButtonItemStyleBordered target:self action:@selector(buyApp)] autorelease]; 

不如尝试一下本作的减少代码行

0

好吧,我发现了什么问题。代码没有问题。

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

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

相关问题