私は3つのView Controllerを持っています。view1、view2、view3 View1 & view2 には、同じビュー コントローラ view3 と呼ばれる両方のボタンを追加するボタンがあります。ビュー 3 と呼ばれるボタンをどうやって知ることができますか?
ビュー3と呼ばれるボタンを知る方法を教えてください
私は3つのView Controllerを持っています。view1、view2、view3 View1 & view2 には、同じビュー コントローラ view3 と呼ばれる両方のボタンを追加するボタンがあります。ビュー 3 と呼ばれるボタンをどうやって知ることができますか?
ビュー3と呼ばれるボタンを知る方法を教えてください
最初のビューで .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];
}
}
プロパティを作成し、View Controller 3 で次のように合成します。
@property (nonatomic, retain) NSString *ComingForm;
ビューコントローラー3のオブジェクトを作成しながら、ビューコントローラー#1と#2のボタンタッチイベントで、「ComingForm」値を設定してプッシュします。お気に入り
viewcontroller3 *__viewcontroller3=[[viewcontroller3 alloc] init];
[__viewcontroller3 setComingForm: @"View1"];
これで、どのビューコントローラーから来たのかを簡単に取得できます。
ビュー 1とビューtag
2の追加ボタンのプロパティをそれぞれ1と2に設定できます。
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で、 の値を確認するだけです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.");
}