I have a project using StoryBoards and UISearchDisplayController used in the context of a UINavigationController, that appears in the root viewcont
Explicitly declare your outlet
@property (nonatomic, strong) IBOutlet UISearchDisplayController *searchDisplayController;
Then in dealloc - add these lines - nil out the delegate / data source so that they do not receive any message further when the searchDisplayController deallocates itself.
self.searchDisplayController.delegate = nil;
self.searchDisplayController.searchResultsDelegate = nil;
self.searchDisplayController.searchResultsDataSource = nil;