Segue between two view controllers

末鹿安然 提交于 2019-12-21 07:13:12

问题


On my storyboard (shown above), I have a ViewController which holds an MKMapView with annotations. These annotations hold a disclosure icon, which when tapped, should navigate the user to another ViewController. To do so I've created a push segue between the view controllers. I've then given it an identifier of 'showDetail' and implemented the following code.

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

However I get the following error.

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.'

Where am I going wrong? I have tried changing my source UIViewController to a UINavigationController, but the view then just displays as a black screen.


回答1:


You actually have to set your UIViewController as the root controller of a UINavigationController (or pushed through from a view controller w/ a navcontroller). To do that

  • Drag a new navigation controller into your storyboard - it will by default be attached to a tableview controller
  • Delete the tableview controller Right click on the navgiation controller, and connect the "Root View Controller" property to your existing view controller
  • Move the entry point arrow from your view controller to the root view controller



回答2:


Simplest way to do this is to select the View controller you want to be the root of your navigation hierarchy and choose

Editor > Embed In > Navigation Controller

This creates the new navigation controller and hooks up everything up for you.




回答3:


check this steps: 1. to click connection between two view controller. 2. click attribute inspector 3. set identifier to "showDetail". 4. save and run.



来源:https://stackoverflow.com/questions/13049668/segue-between-two-view-controllers

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!