【问题标题】:How to add date picker to UIAlertController(UIAlertView) in Swift?如何在 Swift 中将日期选择器添加到 UIAlertController(UIAlertView)?
【发布时间】:2014-11-05 21:37:41
【问题描述】:

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

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

非常感谢任何形式的帮助。

【问题讨论】:

  • UIAlertView 在 iOS 8 SDK 中已弃用。你的意思是UIAlertController?如果是这样,这个问题可能会有所帮助:stackoverflow.com/questions/25545982/…
  • @JAL 是的,我的意思是 UIAlertController。您提供的链接与 Swift 无关(我的意思是用户为该问题提供的答案)。我不了解 Objective-C,我是从 Swift 开始的,所以我很难将代码转换为 Swift。

标签: ios swift ios8


【解决方案1】:

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

【讨论】:

【解决方案2】:

这是我的代码:

- (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

【讨论】:

    猜你喜欢
    • 2015-11-02
    • 1970-01-01
    • 2017-12-29
    • 2015-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-16
    • 1970-01-01
    相关资源
    最近更新 更多