| 测试已测试 | ✓ |
| Lang语言 | Obj-CObjective C |
| 许可证 | MIT |
| Released最新版本 | 2014年12月 |
由 Scott Berrevoets 维护。
SDCSegmentedViewController 是一个自定义视图控制器容器,它使用分段控制来在视图控制器之间切换。它可以用于iOS 5.0+,尽管示例项目的部署目标是iOS 6.0。
SDCSegmentedViewController 非常易于使用,可以使用故事板或编程方式设置。它设置了一个容器视图控制器,通过 UISegmentedControl 在其子视图控制器之间切换。分段控制可以放置在包含 SDCSegmentedViewController 的导航控制器中的导航栏或工具栏上。可以使用 position 属性来设置此位置,选项为 SDCSegmentedViewControllerPositionNavigationBar(默认)或 SDCSegmentedViewControllerPositionToolbar。
按照以下步骤从故事板中创建 SDCSegmentedViewController
SDCSegmentedViewControllerSDCSegmentedViewController 内置于导航控制器中SDCSegmentedViewController 部分的视图控制器title 属性。这是必需的,因为标题属性用于设置段标题。SDCSegmentedViewController 场景拖动控制到您在步骤2中创建的视图控制器-[SDCSegmentedViewController addStoryboardSegments:],传入一个 NSString 的 NSArray,该数组与转场标识符匹配以下代码是编程创建时在 application:didFinishLaunchingWithOptions:中使用 SDCSegmentedViewController 的示例
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
MyViewController *myVC1 = [[MyViewController alloc] initWithNibName:@"MyVC1" bundle:nil];
MyOtherViewController *myVC2 = [[MyViewController alloc] initWithNibName:@"MyVC2" bundle:nil];
SDCSegmentedViewController *segmentedController = [[SDCSegmentedViewController alloc] initWithViewControllers:@[myVC1, myVC2]];
// Or, we could choose our own titles:
// SDCSegmentedViewController *segmentedController = [[SDCSegmentedViewController alloc] initWithViewControllers:@[myVC1, myVC2] titles:@[@"Segment 1", @"Segment 2"]];
self.window.rootViewController = [[UINavigationController alloc] initWithRootViewController:segmentedController];
[self.window makeKeyAndVisible];
}当然,您不必将 SDCSegmentedViewController 作为根视图控制器使用,也可以将其推送到导航控制器中,以模态方式显示,或执行其他任何您可以对普通视图控制器执行的操作。
尽管这个库是为支持通用的 UIViewController 编写的,但这个库不一定与所有视图控制器都兼容。例如,当与这个库一起使用时,UISearchDisplayController 将显示怪异的行为。可能还有其他问题。
本仓库中分布的代码适用于MIT许可证。