When you send a message to something and nothing happens, your first thought should be: hmm, maybe I'm sending a message to nil.
So, you say:
[self.delegate requestTableUpdate];
But nothing happens. So you should immediately check to see whether self.delegate
is nil.
You have a declared a delegate property:
@property (nonatomic, weak) id <DetailVCDelegate> delegate;
But a property has no value until you give it one. It is up to you to set the delegate
property of your MasterViewController instance to some other instance (of something that adopts the DetailVCDelegate protocol, obviously). Delegates are not born: they are made, deliberately.