0

私は3つのビューコントローラーを持っています。FirsViewController、SecondViewController、ThirdViewController。FirstviewControllerはルートviewcontrollerであり、サブビューとしてsecondviewcontroolerxibを追加しています。お気に入り..

[firstviewcontrollerObject.view addsubview:secondViewcontrollerObj.view]。

secondViewcontrollerにはボタンが1つあります。ボタンタッチアクションが呼び出されると、ThirdViewControllerがロードされます。お気に入り..

[SecondViewControllerobj.view addsubview:thirdviewcontrollerobj.view];

これで、ThirdViewCOntrollerが画面に表示されます。このビューコントローラには小さなボタンしかありません。画面に2つのボタンが表示されています。最初のボタンはSecondviewCOntrollerのもので、2番目のボタンはThirdViewCOntrollerのものです。しかし、2ndviewcontrollerボタンだけでなく、3rdviewcontrollerのタッチアクションを与えることができます。

両方のボタンに触れるようにビューを設計するにはどうすればよいですか。両方のコントローラーを1つにマージしたくありません。

4

2 に答える 2

0

複数のUIViewControllerを使用せずに実装する必要があると思います。

ビューコントローラは、ナビゲーションスタックからプッシュおよびポップする場合に便利です。一度に表示されるビューは1つだけです。私は試しませんでしたが、それがバグを取得する理由だと思います。

しかし、あなたはxibの利点よりもnavigationControllersを好みましたね。

もしそうなら、ビューでxibを使用する方法があります:

NSArray * arr1 = [[NSBundle mainBundle] loadNibNamed:@"MyView1" owner:nil options:nil];
NSArray * arr2 = [[NSBundle mainBundle] loadNibNamed:@"MyView2" owner:nil options:nil];
NSArray * arr3 = [[NSBundle mainBundle] loadNibNamed:@"MyView3" owner:nil options:nil];
UIView * v1 = [arr1 objectAtIndex:0];
UIView * v2 = [arr2 objectAtIndex:0];
UIView * v3 = [arr3 objectAtIndex:0];

// now you have your 3 views, do what you want with them:
v1.center = CGPointMake(100,100);
[self.view addSubview:v1];
v2.center = CGPointMake(100,200);
[self.view addSubview:v2];
v3.center = CGPointMake(100,300);
[self.view addSubview:v3];
于 2012-05-22T10:14:21.427 に答える
0

つまり、最初のビューコントローラにはsecontroller.viewとthirdviewcontroller.viewからの2つのビューが含まれており、3番目はプレスジェスチャを実行していますが、2番目はプレスジェスチャを実行していません。

firstviewcontroller.viewで2つのビューを取得し、そのようにしてください

firstviewcontroller.secondVW=[[Secondviewcontroller alloc]init].view;
    firstviewcontroller.thirdVW=[[Thirdviewcontroller alloc]init].view;

このようにして、両方のビューが接触します。

于 2012-05-22T10:23:23.187 に答える