如何在Swift中向UIAlertController(UIAlertView)添加日期选择器?

我有一个应用程序,我需要显示一个弹出窗口来选择一个日期并将该日期写回视图控制器。

我在网上搜索了很多,但没有成功找到相关的解决方案。

任何forms的帮助都非常感谢。

不要使用任何类型的UIAlertView或UIAlertController。 创建自己的视图并弹出它(可能使用呈现的视图控制器)。 视图可以很小,就像日期选择器一样,您可以在其后面放置阴影视图,就像警报一样。

这是我的代码:

 - (id)initWithDatePicker:(NSString*)title parentView:(UIView*)parentView { self = [super init]; if (self) { datePickerView = [[UIDatePicker alloc] init]; datePickerView.datePickerMode = UIDatePickerModeDateAndTime; if (IS_IOS8_AND_UP) { alertViewController = [UIAlertController alertControllerWithTitle:EMPTY_STRING message:title preferredStyle:UIAlertControllerStyleActionSheet]; UIView* aboveBlurLayer = alertViewController.view.subviews[0]; [aboveBlurLayer addSubview:datePickerView]; [aboveBlurLayer setWidth:SCREEN_WIDTH - 16]; [datePickerView setWidth:SCREEN_WIDTH - 16]; [alertViewController.view setWidth:SCREEN_WIDTH - 16]; [alertViewController.view setBackgroundColor:[UIColor whiteColor]]; UIAlertAction* alertAction = [UIAlertAction actionWithTitle:EMPTY_STRING style:UIAlertActionStyleDefault handler:nil]; [alertViewController addAction:alertAction]; [alertViewController addAction:alertAction]; [alertViewController addAction:alertAction]; [alertViewController addAction:alertAction]; [datePickerView setBackgroundColor:[UIColor whiteColor]]; [aboveBlurLayer addSubview:datePickerView]; } else { actionSheet = [[UIActionSheet alloc] initWithTitle:title delegate:self cancelButtonTitle:nil destructiveButtonTitle:nil otherButtonTitles:nil]; [actionSheet addSubview:datePickerView]; } [self addToolBar]; isDatePicker = YES; parent = parentView; } return self; } 

在工具栏上我有两个按钮完成和取消完成我通过委托发回一个选定日期的电话和取消我解雇。 此代码适用于iOS 7和iOS 8