如何访问父视图响应器

时间:2012-05-22 08:08:02

标签: iphone

我有3个viewcontroller。 FirsViewController,SecondViewController和ThirdViewController。 FirstviewController是root viewcontroller,它正在添加secondviewcontrooler xib作为子视图。像..

[firstviewcontrollerObject.view addsubview:secondViewcontrollerObj.view]。

在secondViewcontroller中我有一个按钮。调用按钮触摸操作时,将加载ThirdViewController。像..

[SecondViewControllerobj.view addsubview:thirdviewcontrollerobj.view];

现在,ThirdViewCOntroller在屏幕上。这个viewcontroller只有一个小按钮。所以我在屏幕上看到2个按钮。第一个按钮是SecondviewCOntroller,第二个按钮是ThirdViewCOntroller。但是,我只能给第三视图控制器的触摸操作而不是第二视图控制器按钮。

如何设计我的视图以触摸两个按钮,我不想将两个控制器合并为一个。

2 个答案:

答案 0 :(得分:0)

我认为你应该在不使用多个UIViewControllers的情况下实现它。

视图控制器对于从导航堆栈推送和弹出非常有用:一次只显示一个视图。我没试过,但我认为这就是你得到这个错误的原因。

但是你更喜欢navigationControllers以获得xib的好处,不是吗?

如果是这样,有一种方法可以将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];

答案 1 :(得分:0)

这意味着你的第一个视图控制器包含两个来自secontroller.view和thirdviewcontroller.view的视图,现在第三个是按下手势但第二个没有按下手势。

请在firstviewcontroller.view上查看两个视图 并按照那样做

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

以这种方式视图都将触及。