如何设置UIButton的titleLabel.text?

yek*_*er3 1 exc-bad-access objective-c uibutton ios

我想知道如何正确地做到这一点,因为我收到了错误访问错误.

在我的应用程序中,我有81 UIButtonsIBAction通过Interface Builder连接到所有这些,这IBAction应该设置用户点击的按钮的文本.我试着这样做:

- (IBAction)changeTitle:(UIButton *)button {
    button.titleLabel.text = [NSString stringWithFormat:@"%@", myString];
}

-(IBAction)setMyString:(id)sender{
myString = [NSString stringWithFormat:@"text"];
}
Run Code Online (Sandbox Code Playgroud)

然而,这会导致错误访问错误,我该如何解决?百万谢谢!

错误消息:EXC_BAD_ACCESS(code = 1,address = 0x0)(lldb)

yon*_*ytu 5

您不应该尝试直接设置标签文本,但使用UIButton setTitle:forState::

- (IBAction)changeTitle:(UIButton *)sender {
  [button setTitle:myString forState:UIControlStateNormal];
}
Run Code Online (Sandbox Code Playgroud)

label属性可用于配置标签的字体和其他属性等内容,但必须使用这些UIButton方法设置其中一些(颜色,阴影颜色和文本).