实现一个controller上集成多个controller

来源:互联网 发布:淘宝开店费用明细 编辑:程序博客网 时间:2024/05/24 03:22

这是我在做项目时遇到的一个问题,想到了以下两个方法。


一、自定制UITabBar

1.自定制UITabBar必须创建一个UITabBarController的子类,如

@interface MainTabBarViewController :UITabBarController


2.然后在此子类中初始化需要集成的多个controller,如

    RandomViewController * rvc = [[RandomViewControlleralloc]init];

    FavoriteViewController * fvc = [[FavoriteViewControlleralloc]init];

    SquareViewController * svc = [[SquareViewControlleralloc]init];

    self.viewControllers =@[svc, rvc, fvc];

    self.selectedIndex =1;

    self.tabBar.hidden =YES;

3.之后创建你切换各个控制器的按钮进行关联。

4.在需要的地方初始化并调用MainTabBarController即可。


二、将多个controller的view ,addSubView到一个父类上。

第一种方法固然简单,但是有一个缺点就是无法实现左右滑动切换3个控制器,第二种方法就解决了这个问题。

1.创建一个父类

@interface MainViewController :UIViewController

2.创建一个scrollView

3.将需要集成的controller初始化并将view添加到父类

   RandomViewController * rvc = [[RandomViewControlleralloc]init];

   [selfaddChildViewController:rvc];

   [rvc.view setFrame:CGRectMake(320,0,320,self.view.frame.size.height)];

   [svaddSubview:rvc.view];

4.在scrollView的代理中进行相应设置之后便可实现滑动切换controller。


说明:注意这句代码

[self.view addChildViewController:rvc];

必须有,否则在Random页跳转到其他页面时还是在MainViewController下。



0 0