WMPageController可以实现管理多个相同的ViewController和完全不同的ViewController

WMPageController可以实现管理多个相同的ViewController和完全不同的ViewController_第1张图片

1.WMPageController 是什么?是一个类似于UINavigationController 和 UITabBarController  的一个UIViewController 的一个管理类

2.有什么作用?

用来分页展示内容的,可以通过手势滑动来切换页面,也可以使用点击title来切换页面

 是一个用来管理ViewController的一个类,将 它的subViewController设置为每一个ViewController ,然后将这些subViewController 放在ScrollView 上面,故称呼为一个ViewController 的一个管理类

3.怎么用WMPageController?

创建MyWMPageController 继承于 WMPageController

- (void)viewDidLoad {

[super viewDidLoad];

self.title = @"健康咨询";

UIColor  * color =  [UIColor  colorWithRed:105.0/255.0 green:144.0/255.0 blue:255.0/255.0 alpha:1.0];

self.dataSource = self;

self.delegate = self;

self.menuItemWidth = 100;

self.menuHeight = 44;

self.titleColorSelected = color;

self.menuViewStyle = WMMenuViewStyleLine;//这里设置菜单view的样式

self.progressColor = color;

self.progressHeight = 1;

//菜单栏的背景色

self.menuBGColor = [UIColor  whiteColor];

//a.请求titleArray,因为是少量的数据而且界面的显示需要得到改数据,所以不需要开启分线程,在主线程执行

[self  doAskTitleArray];

}

//b.在得到titleArray后,继续求的controllerViewArray,然后实现代理方法即可

- (NSInteger)numbersOfChildControllersInPageController:(WMPageController *)pageController

{

return self.titleArray.count;

}

#pragma mark 返回某个index对应的页面,该页面从Storyboard中获取

- (UIViewController *)pageController:(WMPageController *)pageController viewControllerAtIndex:(NSInteger)index {

//c.这个很关键,它可以将controller 设置为我们自己定义好的ViewController,并将它返回。 这个方法使我们避开了那个只是返回一个ViewController 的类 来创建该WMPageController整体

UIViewController  * controller = [self.controllerArray  objectAtIndex:index];

return controller;

}

#pragma mark 返回index对应的标题

- (NSString *)pageController:(WMPageController *)pageController titleAtIndex:(NSInteger)index {

JCYJKTitleModel  * model = [self.titleArray  objectAtIndex:index];

NSString * titleString = model.titleString;

return titleString;

}

你可能感兴趣的:(WMPageController可以实现管理多个相同的ViewController和完全不同的ViewController)