Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/115.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在ios中使用故事板的一个按钮和多个操作_Ios_Objective C_Xcode_Uibutton - Fatal编程技术网

在ios中使用故事板的一个按钮和多个操作

在ios中使用故事板的一个按钮和多个操作,ios,objective-c,xcode,uibutton,Ios,Objective C,Xcode,Uibutton,我有三个具有不同操作的按钮。现在我不想为我的按钮创建三个iAction。在single iAction方法中,我可以为这三个按钮编写操作 我是Xcode新手,有人能帮我做这个吗 提前感谢….为按钮分配标签,在iAction方法中,检查按钮标签并根据按钮标签执行操作。如果我理解错误,请纠正我: 您有三个按钮,希望它们触发相同的iAction。iAction本身根据哪个按钮调用它来决定做什么 这听起来像是“sender”参数的完美示例 创建如下内容: - (IBAction)doSomeAction

我有三个具有不同操作的按钮。现在我不想为我的按钮创建三个iAction。在single iAction方法中,我可以为这三个按钮编写操作

我是Xcode新手,有人能帮我做这个吗


提前感谢….

为按钮分配标签,在iAction方法中,检查按钮标签并根据按钮标签执行操作。

如果我理解错误,请纠正我:

您有三个按钮,希望它们触发相同的iAction。iAction本身根据哪个按钮调用它来决定做什么

这听起来像是“sender”参数的完美示例

创建如下内容:

- (IBAction)doSomeAction:(id)sender
{
    if ([sender isEqual:self.buttonOne]) {
        NSLog(@"ButtonOne");
    } else if ([sender isEqual:self.buttonTwo]) {
        NSLog(@"ButtonTwo");
    } else if ([sender isEqual:self.buttonThree]) {
        NSLog(@"ButtonThree");
    }
}
通过发送者,您可以识别调用此方法的按钮。这样,您就可以避免使用非常烦人的句柄标记

确保将所有三个按钮都连接到此操作-查看连接检查器。这是非常重要的,也是常见的错误源。如果删除了与插座或iAction的任何连接,请同时检查是否在情节提要对象中删除了此连接。 如果一切就绪,只需将发送器与按钮的出口进行比较。

尝试这样做

在。h文件

@property (strong, nonatomic) IBOutlet UIButton *yourbutton;
英寸

步骤1:

在故事板/XIB中为所有三个按钮指定不同的标记, 例如,标签为1的第一个按钮、标签为2的第二个按钮和标签为3的第三个按钮

步骤2: 像这样定义您的方法,并用此方法绑定所有按钮

- (IBAction)buttonAction:(UIButton *)sender
{
    if (sender.tag==1) {
        NSLog(@"First Button");
    } else if (sender.tag==2) {
        NSLog(@"Second Button");
    } else if (sender.tag==3) {
        NSLog(@"Third Button");
    }
}

您的工作就完成了。

只需将多个事件连接到一个
iAction
处理程序,或者它就可以工作,为一个事件连接多个
iAction
处理程序。你在哪里一直坚持做这个程序?我只是这样做,但应用程序崩溃了。对我的帖子做了一些更新。但如果我喜欢,查看崩溃消息可能会有所帮助。它总是只检查第一个按钮标记。它不是检查第二个按钮在if-else-if条件中写下,并提供不同的标记id。请在您遇到困难的地方更新我。它为me@Sport“我有三个具有不同操作的按钮”在问题的第一行中提到。它显示错误消息。.“在类型为“\u strong id”@iworld的对象上找不到属性标记您链接按钮的方式有问题,请参阅该错误。
- (IBAction)buttonAction:(UIButton *)sender
{
    if (sender.tag==1) {
        NSLog(@"First Button");
    } else if (sender.tag==2) {
        NSLog(@"Second Button");
    } else if (sender.tag==3) {
        NSLog(@"Third Button");
    }
}