Found it:
It's because my search TableView uses prototype cells.
The UISearchViewController
of my DetailView had this in its viewDidLoad
method:
[self.detailViewController.searchDisplayController.searchResultsTableView registerNib:[UINib nibWithNibName:@"DetailSearchPrototypeCellRead" bundle:nil] forCellReuseIdentifier:@"read"];
[self.detailViewController.searchDisplayController.searchResultsTableView registerNib:[UINib nibWithNibName:@"DetailSearchPrototypeCellUnRead" bundle:nil] forCellReuseIdentifier:@"unread"];
It appears that this only works the first time the DetailView is populated.
I moved the above in the MasterView's didSelectRow...
and it now works everytime.
I thought this answer could help others struggling with similar matters.