繁体   English   中英

两个视图控制器之间的争论

[英]Segue between two view controllers

在此输入图像描述

在我的故事板上(如上所示),我有一个ViewController,它包含一个带注释的MKMapView。 这些注释包含一个公开图标,在点击时,应该将用户导航到另一个ViewController。 为此,我在视图控制器之间创建了一个push 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,但视图只显示为黑屏。

最简单的方法是选择要作为导航层次结构根目录的View控制器并选择

Editor > Embed In > Navigation Controller

这将创建新的导航控制器并为您提供所有内容。

实际上,您必须将UIViewController设置为UINavigationController的根控制器(或者从具有navcontroller的视图控制器推送)。 要做到这一点

  • 将新的导航控制器拖到故事板中 - 默认情况下会将其附加到tableview控制器
  • 删除tableview控制器右键单击导航控制器,并将“Root View Controller”属性连接到现有的视图控制器
  • 将入口点箭头从视图控制器移动到根视图控制器

检查以下步骤:1。单击两个视图控制器之间的连接。 2.单击属性检查器3.将标识符设置为“showDetail”。 4.保存并运行。

暂无
暂无

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

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