-[UIPopoverController dealloc] reached while popover is still visible.
This error means that you need to have a strong pointer to the popover controller somewhere the entire time it is being displayed.
In the code above you have a local variable to the popover controller, which will be deallocated when the method ends. Instead have a property on whatever class that is above, which will hold the popover for as long as it is required - you can set the property to nil in the popover delegate method when it dismisses.
Your other issue is a limitation of storyboards - you can't link two different segues from the same thing (a cell selection). The simplest thing would probably be to implement - (BOOL)shouldPerformSegueWithIdentifier:(NSString *)identifier sender:(id)sender
on the view controller - if you are showing the table, return YES
, otherwise, show the popover. By the time it gets to prepareForSegue
it's too late - you'll show the popover and perform the segue.