We don’t add UIPickerView as subview. There is a trick to achieve this. Create a dummy UITextField This text field is not visible to user, is a hidden field ViewController.m #import "ViewController.h" @interface ViewController () @property (nonatomic, strong) UITextField *pickerViewTextField; @end @implementation ViewController @synthesize pickerViewTextField = _pickerViewTextField; - (void)viewDi