0

我正在编写一个在视图控制器上有一个取消按钮的 iPad 应用程序。当控制器上的工作完成时,labelText 从“Cancel”变为“Done”。因此,我只希望在 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 已更改。有任何想法吗?

4

2 回答 2

1

首先,您在 if 语句中将文本设置为“取消”。因此,您的 if 语句逻辑说“如果标题文本成功设置为‘取消’,则显示警报。” 比较运算符是==,不是=

其次,您不想用==运算符比较两个不同的文本对象。你想这样使用isEqualToString:

if ([closeButton.titleLabel.text isEqualToString:@"Cancel"]) { ... }
于 2013-01-23T23:24:03.407 回答
0

您不能使用“==”来比较字符串。你使用 isEqualToString,像这样:

if ([closeButton.titleLabel.text isEqualToString:@"Cancel"])
于 2013-01-23T23:23:30.493 回答