實現一個controller上整合多個controller
這是我在做專案時遇到的一個問題,想到了以下兩個方法。
一、自定製UITabBar
1.自定製UITabBar必須建立一個UITabBarController的子類,如
@interface MainTabBarViewController :UITabBarController
2.然後在此子類中初始化需要整合的多個controller,如
RandomViewController * rvc = [[RandomViewControlleralloc] init];
FavoriteViewController * fvc = [[FavoriteViewControlleralloc
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.建立一個scrollView3.將需要整合的controller初始化並將view新增到父類
RandomViewController * rvc = [[RandomViewControlleralloc] init];
[selfaddChildViewController:rvc];
[rvc.view setFrame:CGRectMake(320,0, 320,self.view.frame.size.height)];
[svaddSubview
4.在scrollView的代理中進行相應設定之後便可實現滑動切換controller。
說明:注意這句程式碼
[self.view addChildViewController:rvc];
必須有,否則在Random頁跳轉到其他頁面時還是在MainViewController下。