试图通过UIButton';从iOS中的.xib文件调用UIViewController时的s标记值

试图通过UIButton';从iOS中的.xib文件调用UIViewController时的s标记值,ios,uiviewcontroller,uibutton,xib,Ios,Uiviewcontroller,Uibutton,Xib,我正在开发一个iOS应用程序,其中我有两个单独的按钮,可以从.xib文件调用并显示UIViewController。当为用户显示此viewController时,用户输入数据,然后解除viewController,并返回到他/她最初来自的主应用程序 我的问题是,用户调用然后取消的viewController由两个不同的按钮激活,用户输入的数据必须根据调用它的按钮进行跟踪。但是,在创建和调用viewController时,我不知道如何从按钮传递标记值,以区分哪个按钮正在调用它 下面是我从.xib文

我正在开发一个iOS应用程序,其中我有两个单独的按钮,可以从.xib文件调用并显示UIViewController。当为用户显示此viewController时,用户输入数据,然后解除viewController,并返回到他/她最初来自的主应用程序

我的问题是,用户调用然后取消的viewController由两个不同的按钮激活,用户输入的数据必须根据调用它的按钮进行跟踪。但是,在创建和调用viewController时,我不知道如何从按钮传递标记值,以区分哪个按钮正在调用它

下面是我从.xib文件创建和调用viewController的代码(由两个按钮调用):


这段代码在调用viewController时效果很好,但我还需要从调用此方法的按钮传递标记值。如何执行此操作?

您可以从发送方本身访问标记值

NSInteger tag = [(UIButton *)sender tag];

关于

我没有测试过这一点,但是你不能将发送者对象强制转换为uicontrol然后获得标签吗

UIControl *view=(UIControl *)sender;
NSInteger tagNo=view.tag;

buttonTag将是您在_nextView

发送方中创建的整数属性
是对按钮的引用。只需将发送者的类型更改为
(UIButton*)
,您就可以检查所需的标记

- (IBAction)buttonClicked:(UIButton*)sender {

    NSInteger tag = sender.tag;
    (...)

}
- (IBAction)buttonClicked:(UIButton *)sender {

    _nextView = [[NextViewController alloc] initWithNibName:@"NextViewController" bundle:nil];
    [_nextView setDelegate:(id)self];
    _nextView.buttonTag = sender.tag;
    NextNavigationController *navigationController = [[NextNavigationController alloc] initWithRootViewController:_nextView];
    [self presentViewController:navigationController animated:YES completion:nil];

}
- (IBAction)buttonClicked:(UIButton*)sender {

    NSInteger tag = sender.tag;
    (...)

}