objective-c - ios 中的 UIButton AddTarget(不工作-崩溃)

标签 objective-c ios unity-game-engine

我已经以编程方式创建了 UIButton ,它被添加到同样以编程方式创建的 UIViewController 中。我不知道要传递什么作为 AddTarget。

我目前已在addtarget中传递了optionView.self

 UIWindow *window1 = [[UIApplication sharedApplication] keyWindow];
   optionView  = [[UIViewController alloc]init];
   optionView.view.frame=CGRectMake(0, 0, 960, 640);
   UIButton *button=[UIButton buttonWithType:UIButtonTypeRoundedRect];
   button.frame=CGRectMake(0, 0, 200, 100);
   [button setTitle:@"Press Me" forState:UIControlStateNormal];
   [button addTarget:optionView.self action:@selector(buttonClicked:)  forControlEvents:UIControlEventTouchUpInside];
   [optionView.view addSubview:button];
   [window1 addSubview: optionView.view];

这也是我的选择器方法

-(IBAction)buttonClicked:(id)sender{

    NSLog(@"This works");

}

而且我还收到以下错误

无法识别的选择器发送到实例 0x1fd7b600'

请注意,我正在使用 Unity3d 游戏引擎。这段代码位于(Unity3d位于APPController.mm中)

最佳答案

您的ViewController optionView没有buttonClicked选择器,这就是应用程序崩溃的原因。

如果需要,您可以从 ViewController 创建子类,在那里实现您的方法并创建 optionView 作为新类的实例。然后它将响应调用。

或者另一种方式 - 您可以通过使用 buttonClicked 选择器为其创建类别来扩展基本 ViewController 类。

关于objective-c - ios 中的 UIButton AddTarget(不工作-崩溃),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13029363/

相关文章:

objective-c - iphone 隐藏 UISearchDisplayController 结果?

objective-c - 为什么我们必须使用@synthesize 有实际原因吗?

ios - FlipView Controller 字符在不同的地方

ios - UITextField 最小字体大小

ios - UITableViewCell textLabel 颜色不变

iphone - 使用 CGPDF 在 PDF 中查找超链接

javascript - React Native Await Async 在提醒用户和设置状态之前不返回值

firebase - Unity 的本地通知(Firebase?)

javascript - Playerprefs 只能在场景本身内部访问吗?

c# - Unity3D 的 OpenCV dll 调用导致 FPS 下降