I can see their usage but I think it will fail if there are +1 actions on the controller (e.g. a Cancel, Email etc..), that is it will be difficult to determine actions of the same controller (unless you put another variable on your controller)

but you can enhance the delegate with more actions if the need arises:
e.g. 
- (void)addPresentViewControllerDidCancel:(AGAddPresentViewController *)controller
- (void)addPresentViewControllerDidChooseEmail:(AGAddPresentViewController *)controller email:(id)data;
...

further no need to expose the UI interface elements to other controllers just to access their data. Outlets should be part of the class extension(.m) and not exposed in the headers(.h)