私は現在iPadアプリで作業しており、オブジェクトが特定の場所に移動された場合にビューを切り替えるために、ビューコントローラーを関数呼び出ししたいと考えています。「touchesMoved」と「touchesEnded」で、オブジェクトが特定の場所にドラッグされた場合にビューを切り替えるためにビューコントローラで関数を呼び出そうとしましたが、関数が呼び出されないようです。
たとえば、「touchesEnded」は非常に単純で、View Controllerを呼び出すだけです。メッセージは、touchesEndedの内部に記録されますが、呼び出される必要のあるViewControllerの関数の内部には記録されません。デバッガーで関数にステップインしてみましたが、ステップオーバーしたようです。
ビューから*注m_pJupiterはUIImageView、m_pLevelIDはNSString、m_pMyVCはカスタムビューコントローラークラスのインスタンスです。
- (void) touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
if (m_pJupiter.center.x >= (m_pDest.center.x - 25))
{
NSLog(@"Calling beginGameWithLevelID");
[m_pMyVC startGameWithLevelID: m_pLevelID];
}
}
ビューコントローラの機能
- (void) startGameWithLevelID:(NSString*)pLevelID
{
NSLog(@"MyViewController - beginGameWithLevelID");
// The logic for switching views, etc
}
最初のログメッセージは常に表示されますが、ViewControllerのメッセージは表示されません。最悪の事態になると思いますが、カスタムUISliderを使用するだけですが、それでもこれは私を悩ませてきました。