我创建了一个条形按钮项。这将切换12个文本字段'公开程度。我尝试了下面的方法,但即使我点击按钮,它的标题是=隐藏,它仍然调用第一种方法。
- (IBAction)namesButton:(id)sender {
if ((self.namesButton.title = @"Names")) {
_text1.hidden = FALSE;
_text2.hidden = FALSE;
_text3.hidden = FALSE;
_text4.hidden = FALSE;
_text5.hidden = FALSE;
_text6.hidden = FALSE;
_text7.hidden = FALSE;
_text8.hidden = FALSE;
_text9.hidden = FALSE;
_text10.hidden = FALSE;
_text11.hidden = FALSE;
_text12.hidden = FALSE;
self.namesButton.title = @"Hide";
NSLog(@"Now Showing");
return;
}
else if ((_namesButton.title = @"Hide")) {
_text1.hidden = TRUE;
_text2.hidden = TRUE;
_text3.hidden = TRUE;
_text4.hidden = TRUE;
_text5.hidden = TRUE;
_text6.hidden = TRUE;
_text7.hidden = TRUE;
_text8.hidden = TRUE;
_text9.hidden = TRUE;
_text10.hidden = TRUE;
_text11.hidden = TRUE;
_text12.hidden = TRUE;
self.namesButton.title = @"Names";
NSLog(@"Now Hidden");
}
}
答案 0 :(得分:1)
这是因为(self.namesButton.title = @"Names")
为标题指定了一个值而没有检查它。
如果要比较if使用==
中的值,但不能使用strings对象中的==
。
==
比较对象的指针及其值,因此对于NSString
比较,您应该使用([self.namesButton.title isEqualToString:@"Names"])
来检查字符串是否相等。
答案 1 :(得分:0)
不要使用=,请使用isEqualToString,如下所示:
[self.namesButton.title isEqualToString:@"Names"]
答案 2 :(得分:0)
使用此:
- (IBAction)namesButton:(id)sender {
if ([self.namesButton.titleLabel.text isEqualToString: @"Names"]) {
[self.namesButton setTitle: @"Hide" forState:UIControlStateNormal];
_text1.hidden = FALSE;
_text2.hidden = FALSE;
_text3.hidden = FALSE;
_text4.hidden = FALSE;
_text5.hidden = FALSE;
_text6.hidden = FALSE;
_text7.hidden = FALSE;
_text8.hidden = FALSE;
_text9.hidden = FALSE;
_text10.hidden = FALSE;
_text11.hidden = FALSE;
_text12.hidden = FALSE;
NSLog(@"Now Showing");
return;
}
else if ([self.namesButton.titleLabel.text isEqualToString: @"Hide"]) {
[self.namesButton setTitle: @"Names" forState:UIControlStateNormal];
_text1.hidden = TRUE;
_text2.hidden = TRUE;
_text3.hidden = TRUE;
_text4.hidden = TRUE;
_text5.hidden = TRUE;
_text6.hidden = TRUE;
_text7.hidden = TRUE;
_text8.hidden = TRUE;
_text9.hidden = TRUE;
_text10.hidden = TRUE;
_text11.hidden = TRUE;
_text12.hidden = TRUE;
NSLog(@"Now Hidden");
}
}