OZTabBarController 0.2.2

OZTabBarController 0.2.2

测试已测试
语言语言 Obj-CObjective C
许可证 BSD
发布最后发布2015年5月

Chakrit Wichian 维护。



  • Chakrit Wichian

一个轻盈的标签页控制器,针对最大可定制性设计。它仅处理视图切换工作,其他一切自定义留由您完成。支持使用 NIB 文件创建主视图。

特性

  • 在单类中支持基于 NIB 的模式和基于 loadView 的模式。
  • 不对您的应用程序强加任何图形。您可以自定义图形和动画,并通过标准 IBAction 钩子或单个超级方法调用发送信号。
  • 如果在此控制器被用于 UINavigationController 内时,自动处理用户切换标签时导航栏属性变化。
  • 同时处理标签页内的子 UINavigationController,通过在多次点击时自动调用 popToRootViewController

用法

CocoaPods: pod 'OZTabBarController', '~> 0.2.0'

基于 NIB

使用 initWithViewControllers: 方法或使用指定的初始化器 initWithNibName:bundle:viewControllers:,以指定的视图控制器和从指定的 NIB 文件加载视图来创建一个标签视图。

或者直接扩展 OZTabBarController 类,并在您的项目中添加一个同名的 NIB 文件。

NIB 文件应该有这些连接:

  • 视图控制器标准的 view 属性。
  • 应该将 childViewContainer 属性连接到一个 UIView,该视图将被用于放置子标签的视图。
  • userDidTapTabButton 动作应该从一个 UIControl 连接到一个 UIControl,该 UIControl 应该触发相应的标签显示。设置 tag 属性为要显示的标签的索引(或任何已为您的控件连接的操作)。

标签偏移量

因为标签索引是从零开始的,并且您可能需要为其他目的使用视图标签,OZTabBarController 现在支持 tagOffset 属性。您可以通过在 ViewControler.m 文件中放置以下覆盖块来覆盖此属性,指定控制器应该从视图标签减去的数字以获得标签索引。

例如,如果您将您的标签按钮的标签设置为 100,101,102 等,您可以通过在您的 ViewControler.m 文件中放置以下覆盖块来将 tagOffset 设置为 100:

- (NSInteger)tagOffset {
      return 100;
}

或者简单地在子类的初始化方法中放置 self.tagOffset = 100

基于 loadView

如果您不使用 Interface Builder,只从 loadView 创建您的视图,请确保:

  • 调用指定的初始化器,它为 initWithNibName:bundle:viewControllers:
  • childViewContainer 属性设置为将放置子标签视图并显示的 UIView 实例。
  • 根据需要调用 setSelectedTabIndexsetSelectedViewController 来显示标签。

iOS 7 备注

如果您在使用 OZTabBarController 并发现视图延伸到导航栏下方,您可以重写以下方法来阻止这种行为。

- (UIRectEdge)edgesForExtendedLayout {
  return UIRectEdgeNone;
}

或者在视图控制器生命周期尽早使用相应的设置器来设置值。

更多信息请参考 此 stackoverflow 问题

许可证

BSD2(详细信息请参阅 LICENSE 文件)