MBXPageViewController 1.0.0

MBXPageViewController 1.0.0

测试已测试
语言语言 Obj-CObjective C
许可证 MIT
版本最新版本2016年4月

Nicolas Arqueros维护。



  • Nicolas A

这是一个库,允许您使用带有控制按钮的UIPageController(每个视图控制器一个/ 左右按钮)或一个UISegmentController。这并不是一个困难的任务,但本库的目的是使其极其简单、整洁和快速。我们将它与在UIViewController中使用UITableView的使用相比较。

外观

自由按钮

Free Buttons Gif

左右箭头按钮

Arrow Buttons Gif

分段控制器按钮

Segment Gif

功能

页面模式

  • MBX_FreeButtons:添加尽可能多的按钮以匹配视图控制器。您可以单击按钮跳转到特定的视图控制器,或者通过滑动浏览
  • MBX_LeftRightButtons:使用两个按钮在视图控制器之间左右移动。
  • MBX_SegmentController:使用分段控制器在视图控制器之间切换。

其他功能

  • 委托:每当新的视图控制器出现,您都可以触发其他操作。
  • Storyboard / Xib / 以编程方式创建的视图:您可以使用这些方法中的任何一种,或者甚至混合使用。

我可以在视图控制器中包含什么

  • UITableViewControllers
  • UICollectionViewControllers
  • UIViewControllers
  • 几乎所有事物!

安装

CocoaPod

可在CocoaPods中找到

pod 'MBXPageViewController'

添加文件

将MBXPageViewController.h / .m添加到您的项目中,您就可以开始使用了。

示例

在项目中您可以找到使用此库的三种不同方式(自由按钮、左右或与UISegmentController一起)的示例。

代码示例

#import "MBXSegmentControllerExampleViewController.h"
#import "MBXPageViewController.h"

@interface MBXSegmentControllerExampleViewController () <MBXPageControllerDataSource, MBXPageControllerDataDelegate>
@property (weak, nonatomic) IBOutlet UISegmentedControl *segmentController;
@property (weak, nonatomic) IBOutlet UIView *containerView;

@end

@implementation MBXSegmentControllerExampleViewController

- (void)viewDidLoad {
    [super viewDidLoad];

    // Initiate MBXPageController
    MBXPageViewController *MBXPageController = [MBXPageViewController new];
    MBXPageController.MBXDataSource = self;
    MBXPageController.MBXDataDelegate = self;
    MBXPageController.pageMode = MBX_SegmentController;
    [MBXPageController reloadPages];
}

#pragma mark - MBXPageViewController Data Source

- (NSArray *)MBXPageButtons
{
    return @[self.segmentController];
}

- (UIView *)MBXPageContainer
{
    return self.containerView;
}

- (NSArray *)MBXPageControllers
{
    // You can Load a VC directly from Storyboard
    UIStoryboard* mainStoryboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];

    UIViewController *demo  = [mainStoryboard instantiateViewControllerWithIdentifier:@"firstController"];

    // Or Load it from a xib file
    UIViewController *demo2 = [UIViewController new];
    demo2.view = [[[NSBundle mainBundle] loadNibNamed:@"View" owner:self options:nil] objectAtIndex:0];

    // Or create it programatically
    UIViewController *demo3 = [[UIViewController alloc] init];
    demo3.view.backgroundColor = [UIColor orangeColor];

    UILabel *fromLabel = [[UILabel alloc]initWithFrame:CGRectMake(100, 40, 300, 40)];
    fromLabel.text = @"Third Controller";

    [demo3.view addSubview:fromLabel];

    // The order matters.
    return @[demo,demo2,demo3];
}



#pragma mark - MBXPageViewController Delegate

- (void)MBXPageChangedToIndex:(NSInteger)index
{
    NSLog(@"%@ %ld", [self class], (long)index);
}

基于cwRichardKim的工作

基于:https://github.com/cwRichardKim/RKSwipeBetweenViewControllers

MBXPageViewController

MIT许可(MIT)

版权所有(c)2014 Moblox

特此授予任何获得软件和关联文档(“软件”)副本的任何人免费使用该软件的权利,不受任何限制,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件的副本的权利,并允许获得软件的人进行上述操作,但须遵守以下条件:

上述版权声明和本许可说明应包含在软件的所有副本或主要部分中。

软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、针对特定目的的适用性和非侵权性保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论是在合同、侵权或其他法律行为中产生的,是否由于软件的、使用或其他方式与软件相关。