UIPopover中的UIDatePicker [英] UIDatePicker in UIPopover

查看:94
本文介绍了UIPopover中的UIDatePicker的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经搜索了整个互联网(也许我夸大了一点),以获得有关如何将DatePicker放入UIPopover并在iPad应用程序中显示的教程。我尝试创建一个viewcontroller,将datepicker放在视图控制器中,然后:

I have searched the entire internet (maybe I am exaggerating a little) for a tutorial on how to put a DatePicker into a UIPopover and display that in an iPad application. I have tried creating a viewcontroller, placing the datepicker in the view controller and then:

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

(sa是我创建的viewcontroller的名称),但这不起作用,应用程序崩溃。任何人都可以帮忙吗?

(sa is the name of the viewcontroller i created), but this doesn't work, and the app crashes. Can anyone help?

推荐答案

尝试使用以下代码。它会正常工作:

Try with below code. It will work fine:

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)")
    }

这篇关于UIPopover中的UIDatePicker的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆