繁体   English   中英

pushViewController不能以编程方式与情节提要一起使用

[英]pushViewController doesn't work programmatically with storyboard

当我使用segues(直接通过在情节提要板上拖动它)推送视图时,它工作正常,并加载了下一个视图。 但是,当我尝试以编程方式实现所有这些功能以在单击PIN的右箭头(在地图中)时推送视图时,我有些困惑:

编辑

 -(void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control
{
    NSLog(@"calloutAccessoryControlTapped: enseigneDeLaStation");
    [self performSegueWithIdentifer:@"You identifier" sender:self];
}

我收到此错误:

Receiver Type 'MyFirstViewController' for instance message does not declare a method with selector performSegueWithIdentifer:sender:

您必须使用UIViewController的实例方法performSegueWithIdentifier:sender: 它以编程方式从视图控制器的情节提要文件中使用指定的标识符启动segue。

这是文档

示例代码为:(假设您在视图控制器中调用此代码。

[self performSegueWithIdentifier:@"Your identifier" sender:self];

因此,对于您的代码,它将是:

-(IBAction)goToNextView{
    NSLog(@"The button is clicked");
    [self performSegueWithIdentifier:@"Your identifier" sender:self];
}

不要忘记在界面构建器中设置segue标识符。 另外,请确保代码和界面生成器中的标识符相同。

Malek是正确的。 Pfitz示例确实返回

实例消息的接收者类型“ MyFirstViewController”未使用选择器performSegueWithIdentifer:sender声明方法:

这是由于错字。 正确的方法是

[self performSegueWithIdentifier:@"You identifier" sender:self];

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM