测试已测试 | ✓ |
Lang语言 | Obj-CObjective C |
许可证 | MIT |
Released最新版本 | 2014年12月 |
由 Scott Berrevoets 维护。
SDCSegmentedViewController
是一个自定义视图控制器容器,它使用分段控制来在视图控制器之间切换。它可以用于iOS 5.0+,尽管示例项目的部署目标是iOS 6.0。
SDCSegmentedViewController
非常易于使用,可以使用故事板或编程方式设置。它设置了一个容器视图控制器,通过 UISegmentedControl
在其子视图控制器之间切换。分段控制可以放置在包含 SDCSegmentedViewController
的导航控制器中的导航栏或工具栏上。可以使用 position
属性来设置此位置,选项为 SDCSegmentedViewControllerPositionNavigationBar
(默认)或 SDCSegmentedViewControllerPositionToolbar
。
按照以下步骤从故事板中创建 SDCSegmentedViewController
SDCSegmentedViewController
SDCSegmentedViewController
内置于导航控制器中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许可证。