UIButton标题In .xib覆盖程序化标题更改

时间:2013-12-18 02:56:52

标签: ios

我正在编写一个应用程序,它使用多个按钮加载视图(以.xib设计)。加载视图时,我以编程方式设置按钮标题。然后我将视图添加为子视图。对于稍纵即逝的第二个,我看到以编程方式设置的标题出现,然后它们变为.xib中的原型标题。

以下是代码:

self.cellPhoneButton.titleLabel.text = person.cellPhone;
self.homePhoneButton.titleLabel.text = person.homePhone;

// Do other stuff with the view

[self.peopleView addSubview:self.personView];

为什么按钮的标题会恢复为默认内容,为什么页面的其他组件(标签,导航栏标题等)不会发生这种情况?

修改

我也试过这段代码但没有成功:

[self.cellPhoneButton setTitle:person.cellPhone forState:UIControlStateNormal|UIControlStateSelected];
[self.homePhoneButton setTitle:person.homePhone forState:UIControlStateNormal|UIControlStateSelected];

// Do other stuff with the view

[self.peopleView addSubview:self.personView];

1 个答案:

答案 0 :(得分:5)

您应该使用[self.homePhoneButton setTitle: forState:];方法设置UIButton的标题。在你的情况下,状态应为UIControlStateNormal,这意味着如果你没有明确指定其他状态,控制状态将适用于所有状态。如果将Normal与其他组合,则Normal将被覆盖。