Ios removeObjectFromSuperView不使用if语句

Ios removeObjectFromSuperView不使用if语句,ios,iphone,objective-c,model-view-controller,ios7,Ios,Iphone,Objective C,Model View Controller,Ios7,我有一个按钮,按下时应该隐藏状态栏并将文本放置在其位置。然后,当按下按钮时,标签将从视图中移除,状态栏将重新显示。第一部分工作——状态栏被隐藏,标签被放置在视图上,问题是当我第二次按下按钮时(删除文本并放回状态栏)。状态栏重新出现,但标签未从视图中删除。为了实现这一点,我使用了if语句。我还使用了removeObjectFromSuperView,这是不起作用的东西 代码如下: - (IBAction)buttonPressed:(id)sender { UILabel *label = [

我有一个按钮,按下时应该隐藏状态栏并将文本放置在其位置。然后,当按下按钮时,标签将从
视图中移除,状态栏将重新显示。第一部分工作——状态栏被隐藏,标签被放置在
视图上
,问题是当我第二次按下按钮时(删除文本并放回状态栏)。状态栏重新出现,但标签未从
视图中删除。为了实现这一点,我使用了if语句。我还使用了removeObjectFromSuperView,这是不起作用的东西

代码如下:

 - (IBAction)buttonPressed:(id)sender {

UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(0, 0, 320, 21)];

label.text = @"This is a test";

[label setFont:[UIFont systemFontOfSize:13]];

label.textAlignment = NSTextAlignmentCenter;



if (hidden == NO) {

    [UIApplication sharedApplication].statusBarHidden = YES;

    [self.view addSubview:label];

    hidden = YES;

}else if (hidden == YES) {

    [UIApplication sharedApplication].statusBarHidden = NO;



    [label removeFromSuperview];

    hidden = NO;

}

}
谢谢 编辑:问题是这样的:

您需要在按下的
按钮之外跟踪标签:
方法。现在,每次按下按钮时都会创建一个新标签,然后删除相同的标签

例如:

@interface MyViewController () {
    UILabel *label;
}

- (IBAction)buttonPressed:(id)sender {
    if (hidden == NO) {

        [UIApplication sharedApplication].statusBarHidden = YES;

        label = [[UILabel alloc]initWithFrame:CGRectMake(0, 0, 320, 21)];
        label.text = @"This is a test";
        [label setFont:[UIFont systemFontOfSize:13]];
        label.textAlignment = NSTextAlignmentCenter;

        [self.view addSubview:label];

        hidden = YES;

    } else if (hidden == YES) {

        [UIApplication sharedApplication].statusBarHidden = NO;

        [label removeFromSuperview];
        label = nil;

        hidden = NO;
    }
}

您还可以设置
label=nil一旦你从超级视图中删除它。

我只是按照你说的做了,我仍然有同样的问题,谢谢。@user3186310我扩展了
按钮按下:
方法。试试看。