首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >uidatepicker问题

uidatepicker问题
EN

Stack Overflow用户
提问于 2011-05-30 09:32:07
回答 2查看 557关注 0票数 0

我开发ipad应用程序,我有一个按钮,我想在点击按钮时出现一个包含datepicker的子视图,做取消。

问题是

当单击“取消”应用程序崩溃时,未识别的选择器发送给实例

时,未显示

我使用以下代码

代码语言:javascript
运行
复制
-(IBAction)BirthDatePicker:(id)sender{
    if(! ISPicker) {

        if( self.interfaceOrientation == UIInterfaceOrientationPortrait || self.interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown)
        {
            pickerView = [[UIPickerView alloc]initWithFrame:CGRectMake(0,700, 768, 216)];
            mytab = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 656, 768, 44)];


        }
        else {
            pickerView = [[UIPickerView alloc]initWithFrame:CGRectMake(0,439, 1024, 216)];
            mytab = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 395, 1024, 44)];


        }


        pickerView.alpha=0.0;
        mytab.alpha=0.0;

        //pickerView.showsSelectionIndicator = YES;
        [self.view addSubview:pickerView];
        [self.view bringSubviewToFront:pickerView]; 

        mytab.tintColor=[UIColor blackColor];

        UIBarButtonItem * bt1=[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(_Done)];
        UIBarButtonItem * bt2=[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(_cancel)];
        UIBarButtonItem * flx=[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:self action:nil];

        NSArray *arr=[[NSArray alloc] initWithObjects:flx,bt1,bt2,nil];
        [mytab setItems:arr];
        [self.view addSubview:mytab];

        [UIView beginAnimations:nil context:nil];
        [UIView setAnimationDuration:0.3];
        pickerView.alpha=1.0;
        mytab.alpha=1.0;
        [UIView commitAnimations];

        [pickerView release];
        [mytab release];
        [bt1 release];
        [flx release];
        [arr release];

        ISPicker = true ;
    }
}

-(void)_Done{

    ISPicker  = false ;

    NSDate * selected = [pickerView date];
    NSString * date = [selected description];
    DateLabel.text = date;

}

-(void)_Cancel{ 

    ISPicker  = false ;
    //// Release the view 
    [UIView beginAnimations:nil context:nil];
    [UIView setAnimationDuration:0.3];
    pickerView.alpha=0.0;
    mytab.alpha=0.0;

    [UIView commitAnimations];
}

请给我任何建议

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-05-30 10:35:47

错在这条线上

代码语言:javascript
运行
复制
pickerView = [[UIPickerView alloc]initWithFrame:CGRectMake(0,700, 768, 216)];

它应该是

代码语言:javascript
运行
复制
pickerView = [[UIDatePicker alloc]initWithFrame:CGRectMake(0,700, 768, 216)];
票数 0
EN

Stack Overflow用户

发布于 2011-05-30 09:37:03

您不应该发布您的pickerViewmyTab,直到您完成它,从-(IBAction)BirthDatePicker:(id)sender中删除发行版,然后移动到-(void)_Done-(void)_Cancel

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6174508

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档