So, as I mentioned in my comment, I think this is a mistake, but we will see how Apple reacts. But yes, segues do not like view controllers, which are the root view controllers of multiple navigation controllers. There are a number of workarounds depending on the context under which it occurs.
Best workaround: Share navigation controllers, not root view controllers.
So, for the simple example above, you can do this and everything will be fine:

Another workaround: this is more applicable to complex storyboards that may have different user navigation controllers, so sharing a navigation controller is not possible. One fun aspect of this problem is that when the view controller has two parent navigation controllers in the storyboard, you won’t know until it succeeds! And then, on different launches, they can switch: P (another reason, I think, is a mistake).
Sooooo, from inside prepareForSegue, you can check if your navigation controller has been unpacked using rootViewController and, if it hasn’t, do it yourself there:
UINavigationController* nc = segue.destinationViewController ; if (nc.viewControllers.count == 0) { nc.viewControllers = @[[self.storyboard instantiateViewControllerWithIdentifier:@"MyDetailVC"]]; }
source share