0

我试图在点击文本字段时关注这篇文章显示日期选择器,当我到达“在 XIB 中,拉出 UIToolbar 和 UIDatePicker 但不将其附加到视图”的地步时,我迷路了。我正在使用情节提要,而他正在使用 xib。那是问题吗?xib 对我来说不是一个选择。那么有没有办法将日期选择器拖出,但不附加到视图?

4

3 回答 3

0

可能对你有帮助..

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
        dateActionSheet = [[UIActionSheet alloc]initWithTitle:@"Select Your Date of Birth" delegate:self cancelButtonTitle:nil destructiveButtonTitle:nil otherButtonTitles:nil  , nil];
            dateActionSheet.actionSheetStyle = UIActionSheetStyleBlackOpaque;

            UIDatePicker *datePicker = [[UIDatePicker alloc] init];
            datePicker.datePickerMode = UIDatePickerModeDate;
            [datePicker addTarget:self action:@selector(datePickerValueChangedd:) forControlEvents:UIControlEventValueChanged ];
            NSDateFormatter *df = [[NSDateFormatter alloc] init];
            df.dateStyle = NSDateFormatterMediumStyle;

            [dateActionSheet addSubview:datePicker];
            [dateActionSheet addSubview:self.datePickerView];

            UIToolbar *tools=[[UIToolbar alloc]initWithFrame:CGRectMake(0, 0,320,40)];
            tools.barStyle=UIBarStyleBlackOpaque;
            [dateActionSheet addSubview:tools];


            UIBarButtonItem *doneButton=[[UIBarButtonItem alloc]initWithTitle:@"Done" style:UIBarButtonItemStyleBordered target:self action:@selector(btnActinDoneClicked)];
            doneButton.imageInsets=UIEdgeInsetsMake(200, 6, 50, 25);


            UIBarButtonItem *flexSpace= [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];

            NSArray *array = [[NSArray alloc]initWithObjects:flexSpace,flexSpace,doneButton,nil];

            [tools setItems:array];



            //picker title
            UILabel *lblPickerTitle=[[UILabel alloc]initWithFrame:CGRectMake(60,8, 200, 25)];
            lblPickerTitle.text=@"Select Date of Birth";
            lblPickerTitle.backgroundColor=[UIColor clearColor];
            lblPickerTitle.textColor=[UIColor whiteColor];
            lblPickerTitle.textAlignment = NSTextAlignmentCenter;
            lblPickerTitle.font=[UIFont boldSystemFontOfSize:15];
            [tools addSubview:lblPickerTitle];


            //cell.detailTextLabel.text = [self datePickerValueChangedd:datePicker];

            [dateActionSheet showFromRect:CGRectMake(0,480, 320,215) inView:self.view animated:YES];
            [dateActionSheet setBounds:CGRectMake(0,0, 320, 411)];
        }

    -(void)btnActinDoneClicked {
        [dateActionSheet dismissWithClickedButtonIndex:1 animated:YES];
        [dateActionSheet removeFromSuperview];

    }

    -(void)datePickerValueChangedd:(UIDatePicker*) datePicker
    { 
        Youytextfield.text = (NSString *)datePicker.date;
    }
于 2013-08-05T09:39:58.297 回答
0

故事板的不同之处在于您将为每个视图使用一个 XIB 文件(也称为 NIB)。但是您应该能够遵循任何指示。

在 XIB 中,拉出 UIToolbar 和 UIDatePicker 但不要将其附加到视图。

我相信他的意思是不要像使用按钮那样连接到 ViewController(例如 IBAction)

由于您在点击文本字段时显示,因此您必须以编程方式进行。

您实际上不需要将其添加到您的视图中。

于 2013-08-05T02:27:52.490 回答
0

您可以创建一个视图控制器,底部有一个日期选择器,顶部有一个关闭按钮。点击文本字段时,您可以模态显示该视图控制器。

为 viewcontroller 设置委托方法: closeButtonClicked: 和 dateSelected: ,并在主控制器中实现这些委托方法。

此外,您可以通过添加具有特定 alpha 的 datePicker 的 viewcontroller 背景颜色来“阻止”屏幕,以获得良好的效果。

我发现这是最简单的方法。不需要笔尖

于 2013-08-05T05:28:10.197 回答