There is a lot of code out there and it's really varied. Sometimes the segue controller is :init'd, and sometimes it's used as is. It's obviously set to an object before I :init it, but in some cases the controller does not work as expected. There doesn't seem to be any documentation on prepareForSegue that clears this up.
Also I might add that some developers even use a third option and simply redefine what segue they present.
What am I missing?
Example UIImagePickerController for iPad requires :init (no photos are loaded into the picker), on the iPhone it works as expected.
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
// This line is required for iPad functionality.
// UIImagePickerController *segueController = [((UIImagePickerController*)(segue.destinationViewController)) init];
// This line is all that is required on iPhone/iPod
UIImagePickerController *segueController = (UIImagePickerController*)segue.destinationViewController;
segueController.delegate = self;
segueController.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;
}
Another SO Post: iOS7 Storyboard image picker not working :(
Edit
It appears as though there might be an issue with UIImagePickerController:initWithCoder, but I don't know how to verify that.