You could put it on another UIView which has a transparent background, or more simply, don't use presentModalViewController, but write your own routine to show it in the current view.
//un tested code:
//put this in your current UIViewController (the one where you were going to call presentModalViewController:)
-(void)showPicker:(UIPickerView *) picker{
CGRect *startFrame = picker.frame;
CGRect *endFrame = picker.frame;
startFrame.origin.y = self.view.frame.size.height; //now the start position is below the bottom of the visible frame
endFrame.origin.y = startFrame.origin.y - endFrame.size.height; //now the end position is slid up by the height of the view, so it will just fit.
picker.frame = startFrame;
[self.view addSubView: picker];
[UIView beginAnimations]
picker.frame = endFrame;
[UIView commitAnimations];
}
You would of course need to add all the necessary code to keep a pointer to the picker and keep track of when to show and get rid of it.