UIButton占位符文本

时间:2013-04-20 21:16:17

标签: ios objective-c uibutton

FirstViewController有一个UIButton需要将其标题设置为字符串“Pick your Favorite Food”。

用户点击UIButton后,他们会转到SecondViewController,其中包含TableView个不同食品的列表。

当他们选择TableView cell食物时,他们会回到FirstViewController,其中UIButton标题应该说出他们选择的食物。

现在,UIButton只是说"(null)",直到用户选择了食物。因此,当他们打开应用程序直到他们选择了食物时,我需要它说“选择你最喜欢的食物”,此时UIButton标题将说明他们选择了哪种食物。

有什么想法?如果需要,我可以添加任何代码片段,谢谢!

编辑: 这是我用来设置UIButton标题的代码 -

[buttonOne setTitle:[NSString stringWithFormat:@"%@", FoodOne] forState:UIControlStateNormal];

解决: 我使用了@lnafziger在下面给出的回复,它完美无缺。感谢所有试图回答我遇到问题的人!

3 个答案:

答案 0 :(得分:1)

您可以在视图控制器子类中覆盖-viewWillAppear:,并在那里设置按钮的文本。这样,每当您的视图显示时,您都可以检查并重新配置按钮。 (我不太清楚数据的来源,如果像CoreData这样的东西,那么你也可以做一些像Key-Value Observing这样的更好的东西,或者在最坏的情况下使用NSNotifications实现你自己的变更传播系统。)

答案 1 :(得分:1)

将您现有的代码更改为:

// If FoodOne is a NSString, then you can skip this part and just use FoodOne
NSString *foodOneDescription = [NSString stringWithFormat:@"%@", FoodOne]
if ([foodOneDescription length] == 0)
    [buttonOne setTitle:@"Pick your Favorite Food" forState:UIControlStateNormal];
else
    [buttonOne setTitle:foodOneDescription forState:UIControlStateNormal];

除非选择了食物,否则会将其设置为“占位符”文本,在这种情况下,它将使用食物的描述(如您的示例所示)。

答案 2 :(得分:0)

您不需要任何“占位符”,您可以根据需要多次设置/更改标题。只需将其设置为“选择最喜欢的食物”,然后在拾取项目后再次设置它。