0

私は3つのView Controllerを持っています。view1、view2、view3 View1 & view2 には、同じビュー コントローラ view3 と呼ばれる両方のボタンを追加するボタンがあります。ビュー 3 と呼ばれるボタンをどうやって知ることができますか?

ビュー3と呼ばれるボタンを知る方法を教えてください

ここに画像の説明を入力

4

3 に答える 3

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;
    }
}

2 番目のビューで .h ファイル

@property (nonatomic)int btnpTag;

2 番目のビュー .m ファイル

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

    }
}

3 番目のビューで .h

@property (nonatomic)int Tag;

3 番目のビューで .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 に答える
2

プロパティを作成し、View Controller 3 で次のように合成します。

@property (nonatomic, retain) NSString *ComingForm;

ビューコントローラー3のオブジェクトを作成しながら、ビューコントローラー#1と#2のボタンタッチイベントで、「ComingForm」値を設定してプッシュします。お気に入り

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

これで、どのビューコントローラーから来たのかを簡単に取得できます。

于 2013-09-20T13:10:25.763 に答える
1

ビュー 1とビューtag2の追加ボタンのプロパティをそれぞれ12に設定できます。

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

あなたがしなければならないことは、view3intで言ういくつかの変数のプロパティを作成することです。tagNo

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

view3に変更する前に、 Add ButtontagNoの値を設定する必要があります。tag

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

ここで、 view3で、 の値を確認するだけですtagNo1の場合は、 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 に答える