两个视点控制器之间SEGUE(Segue between two view controllers)

2019-08-01 20:13发布

在我的故事板(如上所示),我有一个视图控制器,其保持与注释一个的MKMapView。 这些注释举行公开图标,这时候挖掘,应该将用户导航到另一个视图控制器。 要做到这一点,我创建的视图控制器之间的推SEGUE。 然后,我已经给它“showDetail”的标识并执行下面的代码。

- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control
{
    [self performSegueWithIdentifier:@"showDetail" sender:self];
}

不过,我得到以下错误。

Could not find a navigation controller for segue 'showDetail'. Push segues can only be used when the source controller is managed by an instance of UINavigationController.'

我要去哪里错了? 我试图改变我的源代码的UIViewController到一个UINavigationController,但视图然后就显示为黑屏。

Answer 1:

实际上,你必须设置你的UIViewController作为一个UINavigationController的根控制器(或从一个视图控制器通过推W / A navcontroller)。 要做到这一点

  • 一个新的导航控制器拖动到故事板 - 它会默认连接到的tableview控制器
  • 删除的tableview控制器右击navgiation控制器上,而“根视图控制器”属性连接到现有的视图控制器
  • 从您的视图控制器移动切入点箭头根视图控制器


Answer 2:

要做到这一点最简单的方法是选择你想成为你的导航层次的根视图控制器,并选择

Editor > Embed In > Navigation Controller

这将创建新的导航控制器,钩住了一切为你。



Answer 3:

检查此步骤:1.点击两条视图控制器之间的连接。 2.单击属性检查器3集标识符为“showDetail”。 4.保存并运行。



文章来源: Segue between two view controllers