-2

我有两个视图控制器:“A”(主视图控制器)和“B”(第二个视图控制器)。在 VC“A”中,有一个按钮,我想通过表格视图在 VC“B”中设置其标题。当用户从表格视图中选择一行时,按钮的标题应设置为选定的行。经过大量的编辑和测试,我认为我已经将问题隔离到当我在 VC“A”中设置按钮的标签时,在选择表视图之后。这是我认为问题所在的代码(视图控制器“A”):

//firstParameterString = the button label's string which I set in VC "B"

- (void)setButtonLabels {
    NSLog(@"%@", firstParameterString); 

    if (self.firstParameterString == nil) {
        [self.firstParameter setTitle:@"M" forState:UIControlStateNormal];
    }

    else {
        [self.firstParameter setTitle:firstParameterString forState:UIControlStateNormal];
    }

    NSLog(@"%@", [self.firstParameter titleForState:UIControlStateNormal]);
}

当我在模拟器中运行代码时,第一个 NSLog 返回正确的值,但是第二个 NSLog 返回一个值“(null)”。我不明白为什么这不起作用......我在另一个我正在从事的项目中启动并运行它。任何帮助或意见将不胜感激!

谢谢!

4

2 回答 2

1

这是因为 titleLabel 不是你设置的,所以它为空(尚未创建)。此外,您正在设置 firstParameter 的标题,但试图检查 secondParameter。

您想改为检查:

[self.firstParameter titleForState:UIControlStateNormal];
于 2013-08-25T23:49:55.067 回答
0

你会尝试

[self.firstParameter setTitle:self.firstParameterString forState:UIControlStateNormal];
[self.firstParameter setTitle:self.firstParameterString forState:UIControlStateHighlighted];
[self.firstParameter setTitle:self.firstParameterString forState:UIControlStateDisabled];
[self.firstParameter setTitle:self.firstParameterString forState:UIControlStateSelected];
于 2013-08-25T23:48:48.117 回答