将viewcontroller的视图添加为子视图后,UIButton单击事件崩溃

时间:2015-08-05 04:59:46

标签: ios objective-c uiviewcontroller uibutton addsubview

我想将几个ViewController的观点添加为另一个viewcontroller的子视图。所以我在父母viewController内做了这样的事。

-(void)MakeDisplayArea
{
vwDisplayArea=[[UIView alloc] initWithFrame:CGRectMake(0, 0, w, h-scrolTab.frame.size.height)];

[self.view addSubview:vwDisplayArea];
}





-(void)ProfClick :(id)sender

{

    [self MakeDisplayArea];
    ProfileViewController *profviewcontroller=[[ProfileViewController alloc] initWithNibName:@"ProfileViewController" bundle:nil];
    profviewcontroller.view.frame=vwDisplayArea.frame;
    [profviewcontroller.view setBackgroundColor:[UIColor clearColor]];
    [vwDisplayArea addSubview:profviewcontroller.view];

}

然后在profViewcontroller ViewDidLoad方法中,我生成一个按钮并像这样设置目标。

UIButton *btn=[[UIButton alloc] initWithFrame:CGRectMake(10, 60, 100, 30)];
[btn setTitle:@"Button Test" forState:UIControlStateNormal];
[self.view addSubview:btn];
[btn addTarget:self action:@selector(btnClick:) forControlEvents:UIControlEventTouchUpInside];

-(IBAction)btnClick :(id)sender
   {

      NSLog(@"button clicked-------");
   }

我可以看到按钮出现在我作为子视图加载的profViewcontroller上,但是当我点击该按钮时,应用程序崩溃了。在我的第一个viewcontroller上添加subview作为viewcontroller的正确方法是什么?请帮帮我。

由于

1 个答案:

答案 0 :(得分:0)

像maddy所说,你需要子视图控制器来添加工作子视图。

请看这里:Creating Custom Container View Controllers

但与他们合作并不容易。问问自己是否真的需要实现它。在大多数情况下,你不需要它。