我正在编写一个在视图控制器上有“取消”按钮的iPad应用程序。完成控制器上的工作后,labelText将从"取消"到"完成"。因此,我只想在labelTitle仍然是"取消"时显示警报。如果它是"完成"我只想让控制器解雇。这是代码:
NSLog(@"%@",closeButton.titleLabel.text);
if (closeButton.titleLabel.text = @"Cancel")
{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"i-observe"
message:@"Are you sure that you want to cancel?" delegate:self cancelButtonTitle:@"no" otherButtonTitles:@"yes", nil];
[alert show];
}
else
{
[self dismissViewControllerAnimated:YES completion:nil];
}
在两种情况下都会出现警报("取消""完成")。但是在NSLog中它显示titleLabel已更改。有什么想法吗?
答案 0 :(得分:1)
首先,您在if语句中将文本设置为“Cancel”。因此,您的if语句逻辑说“如果标题文本成功设置为'取消',则显示警报。”比较运算符为==
,而不是=
。
其次,您不希望将两个不同的文本对象与==
运算符进行比较。你想这样使用isEqualToString:
:
if ([closeButton.titleLabel.text isEqualToString:@"Cancel"]) { ... }
答案 1 :(得分:0)
您无法使用" =="比较字符串。你使用isEqualToString,如下所示:
if ([closeButton.titleLabel.text isEqualToString:@"Cancel"])