0

我有 3 个视图控制器。view1、view2、view3 View1 和 view2 都有添加按钮,这两个按钮都称为同一个视图控制器 view3。你怎么知道哪个按钮叫view 3

请让我知道如何知道哪个按钮名为 view3

在此处输入图像描述

4

3 回答 3

2

创建一个属性并在您的视图控制器 3 上合成它,例如:

@property (nonatomic, retain) NSString *ComingForm;

现在,在您创建视图控制器 3 的对象时,在您的视图控制器 #1 和 #2 上的按钮触摸事件上,只需设置“ComingForm”值即可。像

viewcontroller3 *__viewcontroller3=[[viewcontroller3 alloc] init];
[__viewcontroller3 setComingForm: @"View1"];

现在您可以轻松地从您来自哪个视图控制器中获取。

于 2013-09-20T13:10:25.763 回答
2

在第一个视图 .h 文件中

@property (nonatomic)int btncTag;

在第一个视图 .m 文件中

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([segue.identifier isEqualToString:@"btnc"])
    {
        btncTag =1;
        ButtonfinalViewController *btnf = segue.destinationViewController;
        btnf.Tag = btncTag;
    }
}

在第二个视图 .h 文件中

@property (nonatomic)int btnpTag;

在第二个视图 .m 文件中

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([segue.identifier isEqualToString:@"pbtn"])
    {
        btnpTag = 2;
        ButtonfinalViewController *btnf = segue.destinationViewController;
        btnf.Tag = btnpTag;

    }
}

在第三视图.h

@property (nonatomic)int Tag;

在第三视图.m

- (IBAction)btnAdd:(id)sender
{
    ButtonCViewController *btnc = [[ButtonCViewController alloc]init];
    btnc.btncTag = Tag;
    ButtonPViewController *btnp = [[ButtonPViewController alloc]init];
    btnp.btnpTag =Tag;

    if (Tag == 1)
    {
        UIStoryboard *menuViewStoryboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
        ButtonCViewController *btnc = [menuViewStoryboard instantiateViewControllerWithIdentifier:@"BtnCView"];
        [self presentViewController:btnc animated:YES completion:nil];
    }
    if (Tag == 2)
    {
        UIStoryboard *menuViewStoryboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
       ButtonPViewController *btnp = [menuViewStoryboard instantiateViewControllerWithIdentifier:@"BtnPView"];
        [self presentViewController:btnp animated:YES completion:nil];
    }
}
于 2013-09-23T07:13:12.820 回答
1

您可以将view1view2tag中的添加按钮的属性分别设置为12

btnInView1.tag = 1;   //in view1.
btnInView2.tag = 2;   //in view2.

您要做的是为view3中的某个int变量创建属性。tagNo

@property (nonatomic) int tagNo;     //in view3.

在更改为view3之前,您必须将 Button 设置为 Add ButtontagNo的值。tag

ViewController3 *view3 = [[ViewController3 alloc] initWithNibName:@"ViewController3" bundle:nil];
view3.tagNo = btnInView1.tag    //in view1.
//view3.tagNo = btnInView2.tag  //in view2.

现在,在 view3中,您只需检查tagNo. 如果它是1意味着view3是从view1加载的,否则是从view2加载的,或者你可以说如果它是1意味着view3是由view1内的 Add Button 加载的,否则由view2内的 Add Button 加载。

if (self.tagNo == 1)
{
    NSLog("view3 is loaded by Add Button inside view1.");
}
else if (self.tagNo == 2)
{
    NSLog("view3 is loaded by Add Button inside view2.");
}
else
{
    NSLog("It will never reach here.");
}
于 2013-09-20T13:09:18.463 回答