Ios 按钮标题文本不存在';不清楚

Ios 按钮标题文本不存在';不清楚,ios,objective-c,string,Ios,Objective C,String,我有BtnDate按钮,当点击时,操作工作并通过弹出窗口获取当前日期,并在BtnDate.titleLabel.text中添加,当我在btnAddForm操作中使用时,检查\u myText是否大于清除\u BtnDate.titleLabel.text 但是它不会清除标题标签文本字符串 我的代码如下 如果\u BtnDate的用户条目\u myTextinside>0值为空,我希望 我的全部代码如下: .h文件内部: @property (nonatomic,retain) IBOutlet

我有
BtnDate
按钮,当点击时,操作工作并通过弹出窗口获取当前日期,并在
BtnDate.titleLabel.text
中添加,当我在
btnAddForm
操作中使用时,检查
\u myText
是否大于
清除
\u BtnDate.titleLabel.text

但是它不会清除
标题标签
文本字符串

我的代码如下

如果
\u BtnDate
的用户条目
\u myText
inside>0值为空,我希望

我的全部代码如下:

.h文件内部:

@property (nonatomic,retain) IBOutlet UIButton* BtnDate;
    - (void)viewDidLoad
    {
        [super viewDidLoad];


         [_BtnDate addTarget:self action:@selector(buttonPressed:) forControlEvents:UIControlEventTouchUpInside];
         _BtnDate.titleLabel.font = [UIFont systemFontOfSize:17];
        [[_BtnDate layer] setBorderWidth:1];
        [[_BtnDate layer] setCornerRadius:5];
        [[_BtnDate layer] setBorderColor:[UIColor lightGrayColor].CGColor];
        [_BtnDate setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
        [self.view addSubview:_BtnDate];


    }


    -(void) showDateView{

        viewBack2 = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 1024, 768)];
        [viewBack2 setBackgroundColor:[UIColor colorWithRed:0 green:0 blue:0 alpha:0.5]];
        [self.view addSubview:viewBack2];


        dateView = [[UIView alloc] initWithFrame:CGRectMake((viewBack2.frame.size.width-300)/2, (viewBack2.frame.size.height-350)/2, 300, 350)];
        [self.view addSubview:dateView];

        UIImageView *imageBackground = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"bg-popup"]];
        [imageBackground setFrame:CGRectMake(0, 0, 300, 350)];
        [dateView addSubview:imageBackground];
        [imageBackground release];

        UIButton *BtnDate = [UIButton buttonWithType:UIButtonTypeCustom];
        [BtnDate setBackgroundImage:[UIImage imageNamed:@"okay.png"] forState:UIControlStateNormal];
        [BtnDate addTarget:self action:@selector(btnDateAction:) forControlEvents:UIControlEventTouchUpInside];
        [BtnDate setFrame:CGRectMake(80, 300, 140, 36)];
        [dateView addSubview:BtnDate];


        datePicker = [[UIDatePicker alloc] initWithFrame:CGRectMake(25,25, 250, 250)];
        datePicker.datePickerMode = UIDatePickerModeDate;

        datePicker.hidden = NO;
        datePicker.date = [NSDate date];
        [datePicker addTarget:self
                       action:@selector(changeDateInLabel:)
             forControlEvents:UIControlEventValueChanged];
        [dateView addSubview:datePicker];



    }


    - (void)changeDateInLabel:(id)sender{

        NSDateFormatter *df = [[NSDateFormatter alloc] init];
        [df setDateFormat:@"yyyy-MM-dd"];
        if (_BtnDate.selected==true) {
            [_BtnDate setTitle:[NSString stringWithFormat:@"%@",[df stringFromDate:datePicker.date]] forState:UIControlStateNormal];
        }

        [df release];
    }


    -(IBAction)btnDateAction:(id)sender{

        if (_BtnDate.selected==true) {
            _BtnDate.selected=false;
        }

        [dateView removeFromSuperview];
        [viewBack2 removeFromSuperview];


    }



    - (void) buttonPressed:(UIButton*)sender {

        if (sender == _BtnDate) {

            [self showDateView];
            _BtnDate.selected=true;
        }


    }


    - (IBAction)btnAddForm:(id)sender {


    // I WANT TO CHECK _myText if is not null or > 0 must be clear _BtnDate.titleLabel.text  dont do this !


     if ([NSNumber numberWithInt:[_myText.text intValue]] > 0 )  {

            _BtnDate.titleLabel.text = @"";


      }
}


    - (void)dealloc {
        [_myText release];
        [_BtnDate release];
        [super dealloc];
    }
    - (void)viewDidUnload {
        [self setmyText:nil];
        [self setBtnDate:nil];
        [super viewDidUnload];
    }
.m文件内部:

@property (nonatomic,retain) IBOutlet UIButton* BtnDate;
    - (void)viewDidLoad
    {
        [super viewDidLoad];


         [_BtnDate addTarget:self action:@selector(buttonPressed:) forControlEvents:UIControlEventTouchUpInside];
         _BtnDate.titleLabel.font = [UIFont systemFontOfSize:17];
        [[_BtnDate layer] setBorderWidth:1];
        [[_BtnDate layer] setCornerRadius:5];
        [[_BtnDate layer] setBorderColor:[UIColor lightGrayColor].CGColor];
        [_BtnDate setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
        [self.view addSubview:_BtnDate];


    }


    -(void) showDateView{

        viewBack2 = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 1024, 768)];
        [viewBack2 setBackgroundColor:[UIColor colorWithRed:0 green:0 blue:0 alpha:0.5]];
        [self.view addSubview:viewBack2];


        dateView = [[UIView alloc] initWithFrame:CGRectMake((viewBack2.frame.size.width-300)/2, (viewBack2.frame.size.height-350)/2, 300, 350)];
        [self.view addSubview:dateView];

        UIImageView *imageBackground = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"bg-popup"]];
        [imageBackground setFrame:CGRectMake(0, 0, 300, 350)];
        [dateView addSubview:imageBackground];
        [imageBackground release];

        UIButton *BtnDate = [UIButton buttonWithType:UIButtonTypeCustom];
        [BtnDate setBackgroundImage:[UIImage imageNamed:@"okay.png"] forState:UIControlStateNormal];
        [BtnDate addTarget:self action:@selector(btnDateAction:) forControlEvents:UIControlEventTouchUpInside];
        [BtnDate setFrame:CGRectMake(80, 300, 140, 36)];
        [dateView addSubview:BtnDate];


        datePicker = [[UIDatePicker alloc] initWithFrame:CGRectMake(25,25, 250, 250)];
        datePicker.datePickerMode = UIDatePickerModeDate;

        datePicker.hidden = NO;
        datePicker.date = [NSDate date];
        [datePicker addTarget:self
                       action:@selector(changeDateInLabel:)
             forControlEvents:UIControlEventValueChanged];
        [dateView addSubview:datePicker];



    }


    - (void)changeDateInLabel:(id)sender{

        NSDateFormatter *df = [[NSDateFormatter alloc] init];
        [df setDateFormat:@"yyyy-MM-dd"];
        if (_BtnDate.selected==true) {
            [_BtnDate setTitle:[NSString stringWithFormat:@"%@",[df stringFromDate:datePicker.date]] forState:UIControlStateNormal];
        }

        [df release];
    }


    -(IBAction)btnDateAction:(id)sender{

        if (_BtnDate.selected==true) {
            _BtnDate.selected=false;
        }

        [dateView removeFromSuperview];
        [viewBack2 removeFromSuperview];


    }



    - (void) buttonPressed:(UIButton*)sender {

        if (sender == _BtnDate) {

            [self showDateView];
            _BtnDate.selected=true;
        }


    }


    - (IBAction)btnAddForm:(id)sender {


    // I WANT TO CHECK _myText if is not null or > 0 must be clear _BtnDate.titleLabel.text  dont do this !


     if ([NSNumber numberWithInt:[_myText.text intValue]] > 0 )  {

            _BtnDate.titleLabel.text = @"";


      }
}


    - (void)dealloc {
        [_myText release];
        [_BtnDate release];
        [super dealloc];
    }
    - (void)viewDidUnload {
        [self setmyText:nil];
        [self setBtnDate:nil];
        [super viewDidUnload];
    }

更新按钮标题时,始终需要指定ControlState!UIButton有四个可能的值:

UIControlStateNormal
UIControlStateHighlighted
UIControlStateDisabled
UIControlStateSelected
所以试试这个

[BtnDate setTitle:@"" forState:UIControlStateNormal];

更新按钮标题时,始终需要指定ControlState!UIButton有四个可能的值:

UIControlStateNormal
UIControlStateHighlighted
UIControlStateDisabled
UIControlStateSelected
所以试试这个

[BtnDate setTitle:@"" forState:UIControlStateNormal];

在showDateView中,使用局部变量BtnDate创建按钮并将其安装到dateView中。因此,
BtnDate
属性可能为零

更改创建按钮的代码以使用实例变量

_BtnDate = [UIButton buttonWithType:UIButtonTypeCustom];
[_BtnDate setBackgroundImage:[UIImage imageNamed:@"okay.png"] forState:UIControlStateNormal];
[_BtnDate addTarget:self action:@selector(btnDateAction:) forControlEvents:UIControlEventTouchUpInside];
[_BtnDate setFrame:CGRectMake(80, 300, 140, 36)];
[dateView addSubview:_BtnDate];

顺便说一句,属性和其他变量名应该以小写字母开头,因此
BtnDate
应该是
BtnDate

在showDateView中,您可以使用局部变量BtnDate创建按钮并将其安装到dateView中。因此,
BtnDate
属性可能为零

更改创建按钮的代码以使用实例变量

_BtnDate = [UIButton buttonWithType:UIButtonTypeCustom];
[_BtnDate setBackgroundImage:[UIImage imageNamed:@"okay.png"] forState:UIControlStateNormal];
[_BtnDate addTarget:self action:@selector(btnDateAction:) forControlEvents:UIControlEventTouchUpInside];
[_BtnDate setFrame:CGRectMake(80, 300, 140, 36)];
[dateView addSubview:_BtnDate];

顺便说一下,属性和其他变量名称应该以小写字母开头,因此当您单击
btnAddForm

设定这个

[BtnDate setTitle:@"" forState:UIControlStateNormal];

当您单击
btnAddForm

设定这个

[BtnDate setTitle:@"" forState:UIControlStateNormal];

@拉贾特我将在哪里添加它?ty@Rajat我将在哪里添加它?泰