每次在 Xcode 4.3 中点击按钮时,如何更改按钮的标题?

Posted

技术标签:

【中文标题】每次在 Xcode 4.3 中点击按钮时,如何更改按钮的标题?【英文标题】:How can a button's title be changed everytime it is tapped in Xcode 4.3? 【发布时间】:2012-05-24 09:09:53 【问题描述】:

我是 iPhone 应用程序开发的新手。我想知道是否可以创建标题为 ABC 的按钮,当用户单击该按钮时,标题类似于 XYZ,当用户单击按钮(现在标题更改为 XYZ)时,它再次更改为上一个即ABC。

我正在使用带有故事板的 xcode 4.3,任何帮助将不胜感激。

更新:我已经实现了它的前半部分。也就是说,当我单击 ABC 时,它会更改为 XYZ,但不知道如何在点击时将 XYZ 设置回 ABC :(

【问题讨论】:

【参考方案1】:

声明一个BOOL 属性,例如buttonIsOn

- (IBAction) buttonPressed: (id) sender

    self.buttonIsOn = !self.buttonIsOn;
    NSString * buttonTitle = (self.buttonIsOn ? @"ABC" : @"XYZ");

    [self.button setTitle: buttonTitle forState: UIControlStateNormal];

【讨论】:

我做到了,我得到了这个错误:在“ViewController”类型的对象上找不到属性'buttonIsOn' 我回答的第一行...“声明一个 BOOL 属性,比如 buttonIsOn。” 嗯,这很简单。读一本关于 Objective-C 的书,当你掌握了基础知识后再回来。【参考方案2】:

粗略的方法是比较按钮的标题,然后换另一个。

你也可以定义枚举来达到同样的效果(但代码会更有意义)。

【讨论】:

【参考方案3】:

如果上述答案不起作用,那么... 试试这个:

- (IBAction) buttonPressed: (UIButton*) sender

    self.button=sender;
    self.buttonIsOn = !self.buttonIsOn;
    if (self.buttonIsOn) 
        [self.button setTitle: @"ABC" forState: UIControlStateNormal];
     else 
        [self.button setTitle: @"XYZ" forState: UIControlStateNormal];
    

【讨论】:

我刚刚更新了我的答案,你应该确保再次复制它。 不,我不需要再次复制它,因为我已经通过编辑更改了代码。 不需要这样做 self.button=sender; @AshleyMills 我稍微更改了代码,现在可以正常工作了。非常感谢。

以上是关于每次在 Xcode 4.3 中点击按钮时,如何更改按钮的标题?的主要内容,如果未能解决你的问题,请参考以下文章

Xcode 4.3 如何使用 SVN 合并来自两个开发人员的故事板更改?

如何更改 UIScrollView Xcode 的 ContentOffSet

点击 3 次时如何更改导航按钮的图像?

如何在代码之外使用 Xcode 4 和 iOS 4.3 将属性分配给自定义 UIControl?

UISearchBar取消按钮Xcode 4.3?

音频完成后更改按钮 Xcode