我想将几个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
的正确方法是什么?请帮帮我。
由于
答案 0 :(得分:0)
像maddy所说,你需要子视图控制器来添加工作子视图。
请看这里:Creating Custom Container View Controllers
但与他们合作并不容易。问问自己是否真的需要实现它。在大多数情况下,你不需要它。