一个轻盈的标签页控制器,针对最大可定制性设计。它仅处理视图切换工作,其他一切自定义留由您完成。支持使用 NIB 文件创建主视图。
loadView
的模式。IBAction
钩子或单个超级方法调用发送信号。UINavigationController
内时,自动处理用户切换标签时导航栏属性变化。UINavigationController
,通过在多次点击时自动调用 popToRootViewController
。CocoaPods: pod 'OZTabBarController', '~> 0.2.0'
使用 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
实例。setSelectedTabIndex
或 setSelectedViewController
来显示标签。如果您在使用 OZTabBarController
并发现视图延伸到导航栏下方,您可以重写以下方法来阻止这种行为。
- (UIRectEdge)edgesForExtendedLayout {
return UIRectEdgeNone;
}
或者在视图控制器生命周期尽早使用相应的设置器来设置值。
更多信息请参考 此 stackoverflow 问题。
BSD2(详细信息请参阅 LICENSE 文件)