ios - 从 UIbutton 读取数字

标签 ios objective-c xcode uibutton

我是 Objective-c 和 Xcode 的新手。我试图从某些按钮获取大量数字,但我得到的只是一个数字。我正在使用按钮标签。

例如:如果我想将两个数字 2+3 相加,效果很好。但当我想加230+32时,却没有。

界面:

- (IBAction)getnumber:(id)sender;
@property (strong, nonatomic) IBOutlet UILabel *Result;
int number;

实现部分:

-(IBAction)getnumber:(id)sender {
    number = [sender tag]; 
    Result.text = [NSString stringWithFormat:@"%i", number]; 
}  

如果我点击了多个按钮,有没有办法从按钮的标签中获取大量数字?

提前谢谢您。

最佳答案

您的问题来自于您如何定义变量。如果我理解你的设置正确的话,你有一个类似计算器界面的东西,而你只是将按钮的标签设置为单位数字,如 1、2、3、... 来指示下一个要显示的数字?

在这种情况下,您的行 number = [sender tag] 会将全局变量设置为该按钮的号码(还记得您的计算机科学教授告诉您永远不要使用全局变量吗?这是一个原因!)当您在下一行中设置结果字符串时,您只是用此按钮的标签覆盖了 numbernumber 仅保存最后按下的按钮的值。相反,你应该做这样的事情。

@interface MyClass : UIViewController
@property (nonatomic, strong) IBOutlet UITextView * resultLabel;
- (IBAction)getNumber:(id)sender;
@end

- (IBAction)getNumber:(id)sender;
{
   self.resultLabel.text = [NSString stringWithFormat:@"%@%d", self.resultLabel.text, [sender tag]];
}

这样,每次调用 getNumber: 时,它都会获取标签当前显示的任何文本,并附加此按钮的值。附带说明一下,Objective-C 属性名称通常以小写字母开头。

关于ios - 从 UIbutton 读取数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16138263/

相关文章:

iphone - libsqlite3.dylib,缺少所需的架构 i386

ios - 带有 UIPanGestureRecognizer 的 UIView 动画速度太快(不减速)

ios - Xcode 11 调试器非常慢 - 已知问题?

ios - 适用于 iOS 的 Google Maps SDK 预览版 API key

ios - 如何使用本地 WIFI 连接将 iPhone 应用程序(其余)连接到 XAMPP?

ios - 核心图 : bring grid lines to the foreground?

objective-c - iOS (iPad) CoreGraphics & Foundation 内存问题

iphone - 为什么 UIViewController 在屏幕上被释放

ios - 我的 xcode 在源代码管理中显示同时打开两个分支

ios - 您如何确定 XCode 使用的构建选项,以便您可以将它们与 xcodebuild 一起使用?