1. 程式人生 > >實現一個controller上整合多個controller

實現一個controller上整合多個controller

這是我在做專案時遇到的一個問題,想到了以下兩個方法。

一、自定製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下。