2

好的,所以我有一个 UIButton 嵌入到 UIImageView 中,它构成了 UIView 的一部分。

按钮的选择器调用应该运行的方法:

[self performSegueWithIdentifier:@"SegueToMoreInfo"];

但是我得到了错误:“myclassname”的界面上没有可见声明选择器“performSegueWithIdentifier”。

基本上我真的需要从 UIView 中执行一个 segue。如果不可能,我将如何从 UIViewController 调用?

编辑:更多信息:

//adding button
UIButton *attractionButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[attractionButton addTarget:self
           action:@selector(buttonClicked:)
           forControlEvents:UIControlEventTouchUpInside];
[attractionButton setTitle:@"Attraction Info" forState:UIControlStateNormal];
attractionButton.frame = CGRectMake(80.0, 80, 160.0, 40.0);
[_image1 addSubview:attractionButton];

我的方法:

 (IBAction)buttonClicked:(id)sender
{
    [self performSegueWithIdentifier:@"SegueToMoreInfo" sender:sender];
}
4

1 回答 1

1
[self performSegueWithIdentifier:@"aseguename" sender:self];

是一个 UIViewController 方法。这就是您收到此错误的原因。除了通过协议之外,视图也不应该与 ViewController 对话。

话虽如此,您正在以错误的方式进行此操作。按钮和其他 UIView 对象的 IBActions 应该在 ViewController 中。因此,我会将 IBAction 移动到您的视图控制器并从那里将其连接到按钮。然后将您的代码插入该 IBAction。

发布代码后更新:发布的所有代码都应该在您的视图控制器中。我只想改变:

[_image1 addSubview:attractionButton];

[self.view addSubview:attractionButton];

或者如果您真的希望该按钮成为您的图像的子视图,那么您可以保留您的代码,只需确保为该图像创建一个 IBOutlet 属性,从界面构建器中的图像到您的视图控制器并将其命名为 _image1。

希望这可以帮助

于 2013-03-08T15:15:25.863 回答