为什么我的方法在iPhone / iPod上被调用两次而在iPad上没有?

时间:2012-02-23 16:02:06

标签: objective-c ios cocoa-touch uinavigationcontroller

在我的一个视图控制器中,单击一个按钮后会调用以下函数,这样我就可以进行一些初始化并弹出当前视图(ResultViewController)并显示上一个视图({{1} })。

GameViewController

在iPhone / iPod上,我注意到- (IBAction)PlayNextList:(id)sender { NSInteger index = [[[GameStore defaultStore] allLists] indexOfObjectIdenticalTo:[[GameStore defaultStore] selectedList] ]; if(index == [[[GameStore defaultStore] allLists] count]-1) { index = 0; } index++; [[GameStore defaultStore] setSelectedList:[[[GameStore defaultStore] allLists] objectAtIndex:index]]; [[GameStore defaultStore] resetGame]; [[GameStore defaultStore] createResult]; NSLog(@"Press Next List"); NSLog(@"%@",[[[[GameStore defaultStore] allLists] objectAtIndex:index] label]); [[self navigationController] popViewControllerAnimated:YES]; } 被调用了两次,但它只在iPad上被调用一次。

在试图找出为什么被调用两次之后,我发现第二次调用发生在[[GameStore defaultStore] createResult];的{​​{1}}和viewWillAppear之间。

知道为什么会这样吗?

1 个答案:

答案 0 :(得分:2)

确保检查连接检查器是否触发了激活PlayNextList的事件,特别是如果您有适用于iPhone和iPad的不同NIB文件,并确保该事件未连接两次到相同的方法。