gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 04:31:11 27 4
gpt4 key购买 nike

我目前正在开发 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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com