UIDatePicker в UIPopover

Я искал весь интернет (возможно, я немного преувеличиваю) для учебника о том, как поместить DatePicker в UIPopover и отобразить его в приложении iPad. Я попытался создать viewcontroller, поставив datepicker в контроллер вида, а затем:

self.popover = [[UIPopoverController alloc] initWithContentViewController:sa];

(sa – это имя созданного viewcontroller, но это не работает, и приложение выходит из строя. Может ли кто-нибудь помочь?

Попробуйте использовать код ниже. Он будет работать нормально:

Objective-C

 - (IBAction)showDatePicker:(UIButton *)sender { UIDatePicker *datePicker = [[UIDatePicker alloc]init];//Date picker datePicker.frame = CGRectMake(0, 0, 320, 216); datePicker.datePickerMode = UIDatePickerModeDateAndTime; [datePicker setMinuteInterval:5]; [datePicker addTarget:self action:@selector(dateChanged:) forControlEvents:UIControlEventValueChanged];//need to implement this method in same class UIView *popoverView = [[UIView alloc] init]; //view popoverView.backgroundColor = [UIColor clearColor]; [popoverView addSubview:datePicker]; // here you can add tool bar with done and cancel buttons if required UIViewController *popoverViewController = [[UIViewController alloc] init]; popoverViewController.view = datePicker; popoverViewController.view.frame = CGRectMake(0, 0, 320, 216); popoverViewController.modalPresentationStyle = UIModalPresentationPopover; popoverViewController.preferredContentSize = CGSizeMake(320, 216); popoverViewController.popoverPresentationController.sourceView = sender; // source button popoverViewController.popoverPresentationController.sourceRect = sender.bounds; // source button bounds //popoverViewController.popoverPresentationController.delegate = self; [self presentViewController:popoverViewController animated:YES completion:nil]; } - (void)dateChanged:(UIDatePicker *)datePicker { NSLog(@"DATE :: %@", datePicker.date); } 

Swift3

  @IBAction func showDatePicker(_ sender: UIButton) { let datePicker = UIDatePicker()//Date picker datePicker.frame = CGRect(x: 0, y: 0, width: 320, height: 216) datePicker.datePickerMode = .dateAndTime datePicker.minuteInterval = 5 datePicker.addTarget(self, action: #selector(dateChanged(_:)), for: .valueChanged) let popoverView = UIView() popoverView.backgroundColor = UIColor.clear popoverView.addSubview(datePicker) // here you can add tool bar with done and cancel buttons if required let popoverViewController = UIViewController() popoverViewController.view = popoverView popoverViewController.view.frame = CGRect(x: 0, y: 0, width: 320, height: 216) popoverViewController.modalPresentationStyle = .popover popoverViewController.preferredContentSize = CGSize(width: 320, height: 216) popoverViewController.popoverPresentationController?.sourceView = sender // source button popoverViewController.popoverPresentationController?.sourceRect = sender.bounds // source button bounds self.present(popoverViewController, animated: true, completion: nil) } func dateChanged(_ datePicker: UIDatePicker) { print("DATE :: \(datePicker.date)") } 

Теперь, поскольку вы отметили iPhone, вполне можно предположить, что вы пытаетесь использовать UIPopoverController в iPhone но UIPopoverController доступен только для iPad . Таким образом, это приводит к сбою, поскольку iPhone не распознает этот контроллер.

  • Как представить popover с анимацией?
  • Заголовок и подзаголовок UIPopOver
  • UIPopoverController странное изменение размера
  • Элементы UIToolbar не отображаются в popover
  • подключение к методу UIPopoverDelegate для изменения размера popover: contentSizeForViewInPopover
  • Crash / SIGABRT, когда я пытаюсь представить UIPopoverController
  • Как поместить с одного контроллера вида на другой контроллер представления
  • IOS: позиция Поповера
  • Слабая ссылка UIPopoverBackgroundView
  • UIPopoverController странное поведение
  • Popover View Arrow перемещается при появлении клавиатуры
  • Interesting Posts

    щелчок / постукивание между буферами для AudioQueue

    iOS Gigya получает данные пользователя по идентификатору

    Текст в UITextView не отображается правильно, невидимым, но занятым пространством

    Swift: определение размера экрана iOS

    Почему нет реализации NSCoding по умолчанию?

    Выполнение задачи после нескольких асинхронных подключений

    performSegueWithIdentifier не работает при вызове из нового экземпляра viewController в Swift

    iOS 7 – Получение предупреждающего сообщения при представлении контроллера модального просмотра

    «Отсутствует аргумент для параметра« стиль »в вызове« ошибка в создании системы UIBarButtonItem

    Программно изменить название UIButton, название которого было установлено в IB, как указано

    Расчет подшипника между двумя CLLocationCoordinate2Ds

    Как определить, насколько удален 3D-объект с края экрана

    Обнаружение лица UIImage

    Как оживить UIView по круговой траектории?

    Заполнение UITableView из массивов

    Давайте будем гением компьютера.