objective-c - 从触摸函数调用函数

标签 objective-c ios ipad

我目前正在开发 iPad 应用程序,希望对我的 View Controller 进行函数调用,以便在对象移动到某个位置时切换 View 。在“touchesMoved”和“touchesEnded”中,如果对象被拖动到某个位置,我尝试在 View Controller 中调用一个函数来切换 View ,但该函数似乎从未被调用。

例如,“touchesEnded”相当简单,只是调用 View Controller ,消息被记录在touchesEnded内部,而不是在应该被调用的 View Controller 函数内部。我尝试单步执行调试器中的函数,但似乎只是单步执行了它。

从 View *注意 m_pJupiter 是一个 UIImageView,m_pLevelID 是一个 NSString,m_pMyVC 是我的自定义 View Controller 类的实例。

- (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];
    }
}

View Controller 的功能

- (void) startGameWithLevelID:(NSString*)pLevelID
{
    NSLog(@"MyViewController - beginGameWithLevelID");
    // The logic for switching views, etc
}

第一条日志消息总是显示,但 View Controller 中的日志消息永远不会显示。我想最坏的情况下我只会使用自定义的 UISlider,但这仍然让我烦恼。

最佳答案

- (void) touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
    if (m_pJupiter.center.x >= (m_pDest.center.x - 25)) 
    {
        NSLog(@"111");
        if([m_pMyVC respondsToSelector:@selector(startGameWithLevelID:)])
        {
            NSLog(@"222");
            [m_pMyVC startGameWithLevelID: m_pLevelID];
        }

    }
}

- (void) startGameWithLevelID:(NSString*)pLevelID
{
    NSLog(@"333");
    // The logic for switching views, etc
}

如果输出只有“111”,说明找不到你的“- (void)startGameWithLevelID:(NSString*)pLevelID”方法

如果输出是“111”“222”,可能你的xcode有问题,重新打开它

关于objective-c - 从触摸函数调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11723963/

相关文章:

ios - 无法从 Parse 检索图像 (Swift)

iphone - 通过 FB Graph API 发布的照片​​没有出现在墙上(以及另外 2 个 FB 问题)

ios - 应用程序在 iPad 上崩溃,但在 iPhone 和 iPod touch 上运行良好

objective-c - 为什么 objc_duplicateClass 标记为 "Do not call this function yourself"

objective-c - 在 keyDown 事件中获取 modifierFlags 而无需同时按下非修饰键!

objective-c - 如何在 Objective-c 中引用/打开窗口

ios - 自定义TableView和标题

iphone - PDF 417 检测和解码

iphone - header 搜索路径和库搜索路径之间的区别?

ios - Ipad1 太旧而无法用作测试设备?