SDCSegmentedViewController 1.6

SDCSegmentedViewController 1.6

测试已测试
Lang语言 Obj-CObjective C
许可证 MIT
Released最新版本2014年12月

Scott Berrevoets 维护。



  • By
  • Scott Berrevoets

SDCSegmentedViewController 是一个自定义视图控制器容器,它使用分段控制来在视图控制器之间切换。它可以用于iOS 5.0+,尽管示例项目的部署目标是iOS 6.0。

使用

SDCSegmentedViewController 非常易于使用,可以使用故事板或编程方式设置。它设置了一个容器视图控制器,通过 UISegmentedControl 在其子视图控制器之间切换。分段控制可以放置在包含 SDCSegmentedViewController 的导航控制器中的导航栏或工具栏上。可以使用 position 属性来设置此位置,选项为 SDCSegmentedViewControllerPositionNavigationBar(默认)或 SDCSegmentedViewControllerPositionToolbar

Storyboard

按照以下步骤从故事板中创建 SDCSegmentedViewController

  1. 拖出一个视图控制器并设置其类为 SDCSegmentedViewController
  2. SDCSegmentedViewController 内置于导航控制器中
  3. 拖出更多您希望成为 SDCSegmentedViewController 部分的视图控制器
  4. 在故事板中填充所有视图控制器的 title 属性。这是必需的,因为标题属性用于设置段标题。
  5. SDCSegmentedViewController 场景拖动控制到您在步骤2中创建的视图控制器
  6. 选择 内嵌段 转场。这是一个类似于 iOS 6 中引入的内嵌转场的自定义转场。
  7. 为转场提供一个标识符
  8. 为步骤2中添加的所有视图控制器重复步骤4-6
  9. 调用 -[SDCSegmentedViewController addStoryboardSegments:],传入一个 NSStringNSArray,该数组与转场标识符匹配

编程方式

以下代码是编程创建时在 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许可证