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我扩展了按钮按下:
方法。试试看。