Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/97.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios addTarget parentViewController和xcode警告我的选择器未声明_Ios_Objective C_Xcode - Fatal编程技术网

Ios addTarget parentViewController和xcode警告我的选择器未声明

Ios addTarget parentViewController和xcode警告我的选择器未声明,ios,objective-c,xcode,Ios,Objective C,Xcode,这与其说是一个真正的问题,不如说是一种好奇,因为它是有效的。但我不明白xcode警告。 在我的应用程序中,我使用addChildViewController,因此我有一个孩子和一个家长。在我的孩子身上,我有一个UIButton,我想激活父函数:它可以工作,但xcode说未声明的选择器父函数:/ 我可以声明此函数来删除此警告,但它将是死代码(坏方法)。 或者我可以使用委托,但为什么在有直接链接的情况下使用委托呢 [btn addTarget:self.parentViewController ac

这与其说是一个真正的问题,不如说是一种好奇,因为它是有效的。但我不明白xcode警告。 在我的应用程序中,我使用addChildViewController,因此我有一个孩子和一个家长。在我的孩子身上,我有一个UIButton,我想激活父函数:它可以工作,但xcode说未声明的选择器父函数:/ 我可以声明此函数来删除此警告,但它将是死代码(坏方法)。 或者我可以使用委托,但为什么在有直接链接的情况下使用委托呢

[btn addTarget:self.parentViewController action:@selector(parentFunction:) forControlEvents:UIControlEventTouchUpInside];    //undeclared selector parentFunction
致意


Thx

您需要导入父视图控制器的.h文件,并将self.parentViewController强制转换到该类,否则编译器不知道该方法存在(因为parentViewController返回的是UIViewController,而不是自定义控制器)


将ParentClass替换为该父级的任何类名。另外,请确保parentFunction:在父类中实现(并带有冒号),并在其.h文件中声明。

您需要导入父视图控制器的.h文件,并将self.parentViewController强制转换到该类,否则编译器不知道该方法存在(因为parentViewController返回UIViewController,而不是自定义控制器)

用父类的任何类名替换ParentClass。此外,请确保parentFunction:在父类中实现(并具有冒号),并且在其.h文件中声明。

尝试在“parentFunction”cf之后删除冒号尝试在“parentFunction”cf thx之后删除冒号(我忘了导入页眉:/而且在工作时不会想到它)thx(我忘了导入页眉:/并且在工作时不会想到它)
[btn addTarget:(ParentClass *)self.parentViewController action:@selector(parentFunction:) forControlEvents:UIControlEventTouchUpInside];