У меня была эта проблема, и я решил ее следующим образом:
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
CGRect frame = bpsPicker.frame;
frame.size.width = 100; // width to be displayed on popover controller
bpsPicker.frame = frame;
}
Использование ViewDidLoad () слишком рано для изменения этого значения.
Чтобы очистить viewWillAppear в UIViewController, которыйпередается в UIPopover (здесь он называется «MyViewController.m»). Итак,
self.myViewController = [[MyViewController alloc] initWithNibName:@"MyViewController" bundle:nil] ;
self.myViewController.delegate = self;
self.myViewController.contentSizeForViewInPopover = CGSizeMake(320, 360); // or whatever
self.myViewControllerPopover = [[UIPopoverController alloc] initWithContentViewController:self.myViewController] ;
[self.myViewControllerPopover presentPopoverFromBarButtonItem:self.myToolBarButton permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];