Full Code of xmartlabs/XLPagerTabStrip for AI

master 211ed62aa376 cached
95 files
382.6 KB
100.6k tokens
1 requests
Download .txt
Showing preview only (412K chars total). Download the full file or copy to clipboard to get everything.
Repository: xmartlabs/XLPagerTabStrip
Branch: master
Commit: 211ed62aa376
Files: 95
Total size: 382.6 KB

Directory structure:
gitextract__7a04txt/

├── .github/
│   ├── FUNDING.yml
│   ├── ISSUE_TEMPLATE.md
│   └── PULL_REQUEST_TEMPLATE.md
├── .gitignore
├── .swiftlint.yml
├── .travis.yml
├── CHANGELOG.md
├── CONTRIBUTING.md
├── Cartfile.private
├── Example/
│   ├── Example/
│   │   ├── AppDelegate.swift
│   │   ├── Assets.xcassets/
│   │   │   ├── AppIcon.appiconset/
│   │   │   │   └── Contents.json
│   │   │   ├── Contents.json
│   │   │   ├── Simpsons/
│   │   │   │   ├── Apu_Nahasapeemapetilon.imageset/
│   │   │   │   │   └── Contents.json
│   │   │   │   ├── Bart_Simpsons.imageset/
│   │   │   │   │   └── Contents.json
│   │   │   │   ├── Contents.json
│   │   │   │   ├── Homer_Simpsons.imageset/
│   │   │   │   │   └── Contents.json
│   │   │   │   ├── Lisa_Simpsons.imageset/
│   │   │   │   │   └── Contents.json
│   │   │   │   ├── Maggie_Simpsons.imageset/
│   │   │   │   │   └── Contents.json
│   │   │   │   ├── Marge_Simpsons.imageset/
│   │   │   │   │   └── Contents.json
│   │   │   │   ├── Montgomery_Burns.imageset/
│   │   │   │   │   └── Contents.json
│   │   │   │   ├── Ned_Flanders.imageset/
│   │   │   │   │   └── Contents.json
│   │   │   │   ├── Otto_Mann.imageset/
│   │   │   │   │   └── Contents.json
│   │   │   │   └── default-avatar.imageset/
│   │   │   │       └── Contents.json
│   │   │   ├── TabBar/
│   │   │   │   ├── Contents.json
│   │   │   │   ├── icon_bar.imageset/
│   │   │   │   │   └── Contents.json
│   │   │   │   ├── icon_button.imageset/
│   │   │   │   │   └── Contents.json
│   │   │   │   ├── icon_segmented.imageset/
│   │   │   │   │   └── Contents.json
│   │   │   │   └── icon_twitter.imageset/
│   │   │   │       └── Contents.json
│   │   │   └── Youtube/
│   │   │       ├── Contents.json
│   │   │       ├── home.imageset/
│   │   │       │   └── Contents.json
│   │   │       ├── more_options.imageset/
│   │   │       │   └── Contents.json
│   │   │       ├── profile.imageset/
│   │   │       │   └── Contents.json
│   │   │       ├── search.imageset/
│   │   │       │   └── Contents.json
│   │   │       └── trending.imageset/
│   │   │           └── Contents.json
│   │   ├── BarExampleViewController.swift
│   │   ├── Base.lproj/
│   │   │   ├── LaunchScreen.storyboard
│   │   │   └── Storyboard.storyboard
│   │   ├── ButtonBarExampleViewController.swift
│   │   ├── ChildControllers/
│   │   │   ├── ChildExampleViewController.swift
│   │   │   └── TableChildExampleViewController.swift
│   │   ├── Helpers/
│   │   │   ├── DataProvider.swift
│   │   │   ├── PostCell.swift
│   │   │   └── PostCell.xib
│   │   ├── Info.plist
│   │   ├── Instagram/
│   │   │   └── InstagramExampleViewController.swift
│   │   ├── NavButtonBarExampleViewController.swift
│   │   ├── ReloadExampleViewController.swift
│   │   ├── SegmentedExampleViewController.swift
│   │   ├── Spotify/
│   │   │   └── SpotifyExampleViewController.swift
│   │   ├── TwitterExampleViewController.swift
│   │   ├── Youtube/
│   │   │   ├── YoutubeExampleViewController.swift
│   │   │   ├── YoutubeIconCell.swift
│   │   │   └── YoutubeIconCell.xib
│   │   └── YoutubeWithLabel/
│   │       ├── YoutubeIconWithLabelCell.swift
│   │       ├── YoutubeIconWithLabelCell.xib
│   │       └── YoutubeWithLabelExampleViewController.swift
│   └── ExampleUITests/
│       ├── ExampleUITests.swift
│       └── Info.plist
├── Example.xcodeproj/
│   ├── project.pbxproj
│   └── project.xcworkspace/
│       └── contents.xcworkspacedata
├── LICENSE
├── Migration.md
├── ObjC/
│   ├── FXPageControl.h
│   └── FXPageControl.m
├── Package.resolved
├── Package.swift
├── Playground.playground/
│   ├── Contents.swift
│   └── contents.xcplayground
├── README.md
├── Sources/
│   └── XLPagerTabStrip/
│       ├── BarPagerTabStripViewController.swift
│       ├── BarView.swift
│       ├── BaseButtonBarPagerTabStripViewController.swift
│       ├── ButtonBarPagerTabStripViewController.swift
│       ├── ButtonBarView.swift
│       ├── ButtonBarViewCell.swift
│       ├── IndicatorInfo.swift
│       ├── PagerTabStripBehaviour.swift
│       ├── PagerTabStripError.swift
│       ├── PagerTabStripViewController.swift
│       ├── Resources/
│       │   └── ButtonCell.xib
│       ├── SegmentedPagerTabStripViewController.swift
│       ├── SwipeDirection.swift
│       ├── TwitterPagerTabStripViewController.swift
│       └── UIWindow+Pager.swift
├── Tests/
│   ├── Info.plist
│   └── XLPagerTabStripTests.swift
├── XLPagerTabStrip/
│   ├── Info.plist
│   └── XLPagerTabStrip.h
├── XLPagerTabStrip.podspec
├── XLPagerTabStrip.xcodeproj/
│   ├── project.pbxproj
│   ├── project.xcworkspace/
│   │   ├── contents.xcworkspacedata
│   │   └── xcshareddata/
│   │       └── IDEWorkspaceChecks.plist
│   └── xcshareddata/
│       └── xcschemes/
│           └── XLPagerTabStrip.xcscheme
└── XLPagerTabStrip.xcworkspace/
    ├── contents.xcworkspacedata
    └── xcshareddata/
        └── IDEWorkspaceChecks.plist

================================================
FILE CONTENTS
================================================

================================================
FILE: .github/FUNDING.yml
================================================
# These are supported funding model platforms

github: xmartlabs # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
patreon: # Replace with a single Patreon username
open_collective: # Replace with a single Open Collective username
ko_fi: # Replace with a single Ko-fi username
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
liberapay: # Replace with a single Liberapay username
issuehunt: # Replace with a single IssueHunt username
otechie: # Replace with a single Otechie username
lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry
custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']


================================================
FILE: .github/ISSUE_TEMPLATE.md
================================================
Before submitting issues ...

- Make sure you are using XLPagerTabStrip [latest release](https://github.com/xmartlabs/XLPagerTabStrip/releases) or master branch version.
- Make sure your Xcode version is the latest stable one.
- Check if the issue was [already reported or fixed](https://github.com/xmartlabs/XLPagerTabStrip/issues?utf8=%E2%9C%93&q=is%3Aissue). We add labels to each issue in order to easily find related issues. If you found a match add a brief comment "I have the same problem" or "+1".
- Please do not use the issue tracker for personal support requests. Stack Overflow is a better place for that where a wider community can help you!

When submitting issues, please provide the following information to help maintainers to fix the problem faster:

- Environment: XLPagerTabStrip, Xcode and iOS version you are using.
- In case of reporting errors, provide Xcode console output of stack trace or code compilation error.
- Any other additional detail such as example code that you think it would be useful to understand, reproduce and solve the problem.


================================================
FILE: .github/PULL_REQUEST_TEMPLATE.md
================================================


================================================
FILE: .gitignore
================================================
## OS X Finder
.DS_Store

## Build generated
build/
DerivedData

## Various settings
*.pbxuser
!default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3
xcuserdata

## Other
*.xccheckout
*.moved-aside
*.xcuserstate
*.xcscmblueprint

## Obj-C/Swift specific
*.hmap
*.ipa

## Playgrounds
timeline.xctimeline
playground.xcworkspace

# Swift Package Manager
#
# Add this line if you want to avoid checking in source code from Swift Package Manager dependencies.
# Packages/
.build/

# CocoaPods
#
# We recommend against adding the Pods directory to your .gitignore. However
# you should judge for yourself, the pros and cons are mentioned at:
# https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control
#
# Pods/

# Carthage
#
# Add this line if you want to avoid checking in source code from Carthage dependencies.
# Carthage/Checkouts

Carthage/Build

.swift-version
.swiftpm/xcode


================================================
FILE: .swiftlint.yml
================================================
disabled_rules: # rule identifiers to exclude from running
#  - colon
#  - comma
#  - control_statement
  - line_length
  - function_body_length
  - identifier_name
  - type_name
  - large_tuple
opt_in_rules: # some rules are only opt-in
  - empty_count
  # Find all the available rules by running:
  # swiftlint rules
excluded: # paths to ignore during linting. Takes precedence over `included`.
  - Carthage
  - Pods
  - Source/ExcludedFolder
  - Source/ExcludedFile.swift

# configurable rules can be customized from this configuration file
# binary rules can set their severity level
force_cast: warning # implicitly
force_try:
  severity: warning # explicitly
# rules that have both warning and error levels, can set just the warning level
# implicitly
line_length: 200
# they can set both implicitly with an array
type_body_length:
  - 300 # warning
  - 400 # error
# or they can set both explicitly
file_length:
  warning: 500
  error: 1200
# naming rules can set warnings/errors for min_length and max_length
# additionally they can set excluded names
type_name:
  min_length: 4 # only warning
  max_length: # warning and error
    warning: 40
    error: 50
  excluded: iPhone # excluded via string
identifier_name:
  min_length: # only min_length
    error: 4 # only error
  excluded: # excluded via string array
    - id
    - URL
    - GlobalAPIKey
reporter: "xcode" # reporter type (xcode, json, csv, checkstyle, junit, html, emoji)

================================================
FILE: .travis.yml
================================================
language: objective-c
osx_image: xcode10.2
branches:
  only:
    - master
env:
  - DESTINATION="OS=12.1,name=iPhone XS" SCHEME="XLPagerTabStrip" SDK=iphonesimulator
before_install:
- brew update
- brew outdated carthage || brew upgrade carthage
script:
  - set -o pipefail
  - xcodebuild -version
  - xcodebuild clean build -project XLPagerTabStrip.xcodeproj -scheme "$SCHEME" -sdk "$SDK"
  #- xcodebuild test -project XLPagerTabStrip.xcodeproj -scheme "$SCHEME" -sdk "$SDK"
  - xcodebuild -project XLPagerTabStrip.xcodeproj -scheme "$SCHEME" -sdk "$SDK" -destination "$DESTINATION" -configuration Debug ONLY_ACTIVE_ARCH=NO test | xcpretty


================================================
FILE: CHANGELOG.md
================================================
# Change Log
All notable changes to XLPagerTabStrip will be documented in this file.

### [9.1.0](https://github.com/xmartlabs/XLPagerTabStrip/releases/tag/9.1.0)

* SPM support.

### [9.0.0](https://github.com/xmartlabs/XLPagerTabStrip/releases/tag/9.0.0)

* Xcode 10.2 and Swift 5.0 support.
* Minor updates and fixes.

### [8.1.0](https://github.com/xmartlabs/XLPagerTabStrip/releases/tag/8.1.0)

* Xcode 10 and Swift 4.2 support.
* Minor updates and fixes.

### [8.0.1](https://github.com/xmartlabs/XLPagerTabStrip/releases/tag/8.0.1)

* Bug fixes and stability improvements.
* Support for iPhone X.

### [8.0.0](https://github.com/xmartlabs/XLPagerTabStrip/releases/tag/8.0.0)

* Xcode 9 support. (Swift 4)
* Bug fixes and stability improvements.

### [7.0.0](https://github.com/xmartlabs/XLPagerTabStrip/releases/tag/7.0.0)

* Bug fixes and stability improvements.

### [6.0.0](https://github.com/xmartlabs/XLPagerTabStrip/releases/tag/6.0.0)

* Swift 3 support
* **Breaking change**: Swiftified names of functions (you can see more details about it [here](https://github.com/xmartlabs/XLPagerTabStrip/Migration.md))

### [5.1.0](https://github.com/xmartlabs/XLPagerTabStrip/releases/tag/5.0.0)

* Xcode 8 support. (Swift 2.3)

### [5.0.0](https://github.com/xmartlabs/XLPagerTabStrip/releases/tag/5.0.0)

* Xcode 7.3 support.
* Bug fixes and stability improvements.

### [4.0.2](https://github.com/xmartlabs/XLPagerTabStrip/releases/tag/4.0.2)

* Bug fixes

### [4.0.1](https://github.com/xmartlabs/XLPagerTabStrip/releases/tag/4.0.1)

* Bug fixes and stability improvements

### [4.0.0](https://github.com/xmartlabs/XLPagerTabStrip/releases/tag/4.0.0)
<!-- Released on 2016-01-20. -->

* Base code migration from obj-c to swift.
* Removed XL prefix from all types.

### [3.0.0](https://github.com/xmartlabs/XLPagerTabStrip/releases/tag/3.0.0)

* `selectedBarAlignment` added to `XLButtonBarView`.
* `shouldCellsFillAvailableWidth` added to `XLButtonBarView`.
* Bug fixes and Stability improvements.

### [2.0.0](https://github.com/xmartlabs/XLPagerTabStrip/releases/tag/v2.0.0)

* Added ability to change look and feel of selected tab.
* `changeCurrentIndexProgressiveBlock` added to `XLButtonBarPagerTabStripViewController`.
* `changeCurrentIndexBlock` added to `XLButtonBarPagerTabStripViewController`.
* indxWasChanged parameter was added to `-(void)pagerTabStripViewController:(XLPagerTabStripViewController *)pagerTabStripViewController updateIndicatorFromIndex:(NSInteger)fromIndex toIndex:(NSInteger)toIndex withProgressPercentage:(CGFloat)progressPercentage indexWasChanged:(BOOL)indexWasChanged;`
* Bug Fix Issue #45: When the current tab is tapped by the user, and later swiping to another tab, the indicator now changes as expected.
* Bug Fix: When scrolling between tabs with progressive indicator, the indicator now scrolls swiftly. It used to jump for an instant.
* Bug Fix Issue #54: Twitter PagerTabStrip wasn't loading the navigation title correctly.
* Bug Fix Issue #32: Demo for Nav Button Bar Example fix.
* Bug Fix Issue #32: Twitter Pager white dots that mark which tab is currently selected is non selectable now.
* Bug Fix Issue #22: moveToViewControllerAtIndex: in viewDidLoad or viewWillAppear is not reflected in buttonBarView.

### [1.1.1](https://github.com/xmartlabs/XLPagerTabStrip/releases/tag/v1.1.1)

* Nav Button example added
* Support for iOS 7.0 and above

### [1.1.0](https://github.com/xmartlabs/XLPagerTabStrip/releases/tag/v1.1.0)

* Twitter pager added
* Bug fixes and stability improvements

### [1.0.0](https://github.com/xmartlabs/XLPagerTabStrip/releases/tag/v1.0.0)

* Initial release


================================================
FILE: CONTRIBUTING.md
================================================
Contributing Guidelines
--------------------------------------------------

This document provides general guidelines about how to contribute to the project. Keep in mind these important things before you start contributing.

### Asking Questions

We do not use github issues for general library support. We think this questions should be posted on stack overflow using [XlPagerTabStrip](http://http://stackoverflow.com/questions/tagged/xlpagertabstrip) tag.

### Reporting issues

* Use [github issues](https://github.com/xmartlabs/XLPagerTabStrip/issues) to report a bug.
* Before creating a new issue:
  * Make sure you are using the [latest release](https://github.com/xmartlabs/XLPagerTabStrip/releases).
  * Check if the issue was [already reported or fixed](https://github.com/xmartlabs/XLPagerTabStrip/issues?utf8=%E2%9C%93&q=is%3Aissue). Notice that it may not be released yet.
  * If you found a match add a brief comment "I have the same problem" or "+1". This helps prioritize the issues addressing the most common and critical first. If possible add additional information to help us reproduce and fix the issue. Please use your best judgement.    
* Reporting issues:
  * Please include the following information to help maintainers to fix the problem faster:
    * Xcode version you are using.
    * iOS version you are targeting.
    * Full Xcode console output of stack trace or code compilation error.
    * Any other additional detail you think it would be useful to understand and solve the problem.


### Pull requests

The easiest way to start contributing is searching open issues by `help wanted` tag. We also add a `difficulty` tag (difficulty: easy, difficulty: moderate, difficulty: hard) in order to give an idea of how complex it can be to implement the feature according maintainers project experience.

* Add test coverage to the feature or fix. We only accept new feature pull requests that have related test coverage. This allows us to keep the library stable as we move forward.
* Remember to document the new feature. We do not accept new feature pull requests without its associated documentation.
* In case of a new feature please update the example project showing the feature.
* Please only one fix or feature per pull request. This will increase the chances your feature will be merged.


###### Suggested git workflow to contribute

1. Fork the XLPagerTabStrip repository.
2. Clone your forked project into your developer machine: `git clone git@github.com:<your-github-username>/XLPagerTabStrip.git`
3. Add the original project repo as upstream repository in your forked project: `git remote add upstream git@github.com:xmartlabs/XLPagerTabStrip.git`
4. Before starting a new feature make sure your forked master branch is synchronized upstream master branch. Considering you do not mere your pull request into master you can run: `git checkout master` and then `git pull upstream master`. Optionally `git push origin master`.
5. Create a new branch. Note that the starting point is the upstream master branch HEAD. `git checkout -b my-feature-name`
6. Stage all your changes `git add .` and commit them `git commit -m "Your commit message"`
7. Make sure your branch is up to date with upstream master, `git pull --rebase upstream master`, resolve conflicts if necessary. This will move your commit to the top of git stack.
8. Squash your commits into one commit. `git rebase -i HEAD~6` considering you did 6 commits.
9. Push your branch into your forked remote repository.
10. Create a new pull request adding any useful comment.


###### Code style and conventions

We try to follow our [swift style guide](https://github.com/xmartlabs/Swift-Style-Guide). Following it is not strictly necessary to contribute and to have a pull request accepted but project maintainers try to follow it. We would love to hear your ideas to improve our code style and conventions. Feel free to contribute.


### Feature proposal

We would love to hear your ideas and make a discussions about it.

* Use github issues to make feature proposals.
* We use `type: feature request` label to mark all [feature request issues](https://github.com/xmartlabs/XLPagerTabStrip/labels/type%3A%20feature%20request).
* Before submitting your proposal make sure there is no similar feature request. If you found a match feel free to join the discussion or just add a brief "+1" if you think the feature is worth implementing.
* Be as specific as possible providing a precise explanation of feature request so anyone can understand the problem and the benefits of solving it.


================================================
FILE: Cartfile.private
================================================
github "Quick/Quick"
github "Quick/Nimble"


================================================
FILE: Example/Example/AppDelegate.swift
================================================
//
//  AppDelegate.swift
//  Example
//
//  Copyright © 2016 Xmartlabs SRL. All rights reserved.
//

import UIKit

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        // Override point for customization after application launch.

        UITabBar.appearance().tintColor = UIColor.init(red: 0.027, green: 0.725, blue: 0.608, alpha: 1)

        _ = YoutubeExampleViewController(nibName: nil, bundle: nil)

        return true
    }

    func applicationWillResignActive(_ application: UIApplication) {
        // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
        // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game.
    }

    func applicationDidEnterBackground(_ application: UIApplication) {
        // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
        // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
    }

    func applicationWillEnterForeground(_ application: UIApplication) {
        // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background.
    }

    func applicationDidBecomeActive(_ application: UIApplication) {
        // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
    }

    func applicationWillTerminate(_ application: UIApplication) {
        // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
    }

}


================================================
FILE: Example/Example/Assets.xcassets/AppIcon.appiconset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "iphone",
      "size" : "20x20",
      "scale" : "2x"
    },
    {
      "idiom" : "iphone",
      "size" : "20x20",
      "scale" : "3x"
    },
    {
      "idiom" : "iphone",
      "size" : "29x29",
      "scale" : "2x"
    },
    {
      "idiom" : "iphone",
      "size" : "29x29",
      "scale" : "3x"
    },
    {
      "idiom" : "iphone",
      "size" : "40x40",
      "scale" : "2x"
    },
    {
      "idiom" : "iphone",
      "size" : "40x40",
      "scale" : "3x"
    },
    {
      "idiom" : "iphone",
      "size" : "60x60",
      "scale" : "2x"
    },
    {
      "idiom" : "iphone",
      "size" : "60x60",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: Example/Example/Assets.xcassets/Contents.json
================================================
{
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: Example/Example/Assets.xcassets/Simpsons/Apu_Nahasapeemapetilon.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "filename" : "Apu_Nahasapeemapetilon.png",
      "scale" : "1x"
    },
    {
      "idiom" : "universal",
      "scale" : "2x"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: Example/Example/Assets.xcassets/Simpsons/Bart_Simpsons.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "filename" : "Bart_Simpsons.png",
      "scale" : "1x"
    },
    {
      "idiom" : "universal",
      "scale" : "2x"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: Example/Example/Assets.xcassets/Simpsons/Contents.json
================================================
{
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: Example/Example/Assets.xcassets/Simpsons/Homer_Simpsons.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "filename" : "Homer_Simpsons.png",
      "scale" : "1x"
    },
    {
      "idiom" : "universal",
      "scale" : "2x"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: Example/Example/Assets.xcassets/Simpsons/Lisa_Simpsons.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "filename" : "Lisa_Simpsons.png",
      "scale" : "1x"
    },
    {
      "idiom" : "universal",
      "scale" : "2x"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: Example/Example/Assets.xcassets/Simpsons/Maggie_Simpsons.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "filename" : "Maggie_Simpsons.png",
      "scale" : "1x"
    },
    {
      "idiom" : "universal",
      "scale" : "2x"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: Example/Example/Assets.xcassets/Simpsons/Marge_Simpsons.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "filename" : "Marge_Simpsons.png",
      "scale" : "1x"
    },
    {
      "idiom" : "universal",
      "scale" : "2x"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: Example/Example/Assets.xcassets/Simpsons/Montgomery_Burns.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "filename" : "Montgomery_Burns.png",
      "scale" : "1x"
    },
    {
      "idiom" : "universal",
      "scale" : "2x"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: Example/Example/Assets.xcassets/Simpsons/Ned_Flanders.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "filename" : "Ned_Flanders.png",
      "scale" : "1x"
    },
    {
      "idiom" : "universal",
      "scale" : "2x"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: Example/Example/Assets.xcassets/Simpsons/Otto_Mann.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "filename" : "Otto_Mann.png",
      "scale" : "1x"
    },
    {
      "idiom" : "universal",
      "scale" : "2x"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: Example/Example/Assets.xcassets/Simpsons/default-avatar.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x"
    },
    {
      "idiom" : "universal",
      "filename" : "default-avatar@2x.png",
      "scale" : "2x"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: Example/Example/Assets.xcassets/TabBar/Contents.json
================================================
{
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: Example/Example/Assets.xcassets/TabBar/icon_bar.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "filename" : "a_bar.png",
      "scale" : "1x"
    },
    {
      "idiom" : "universal",
      "filename" : "a_bar@2x.png",
      "scale" : "2x"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: Example/Example/Assets.xcassets/TabBar/icon_button.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "filename" : "a_button.png",
      "scale" : "1x"
    },
    {
      "idiom" : "universal",
      "filename" : "a_button@2x.png",
      "scale" : "2x"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: Example/Example/Assets.xcassets/TabBar/icon_segmented.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "filename" : "a_segmented.png",
      "scale" : "1x"
    },
    {
      "idiom" : "universal",
      "filename" : "a_segmented@2x.png",
      "scale" : "2x"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: Example/Example/Assets.xcassets/TabBar/icon_twitter.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "filename" : "a_twitter.png",
      "scale" : "1x"
    },
    {
      "idiom" : "universal",
      "filename" : "a_twitter@2x.png",
      "scale" : "2x"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: Example/Example/Assets.xcassets/Youtube/Contents.json
================================================
{
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: Example/Example/Assets.xcassets/Youtube/home.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x"
    },
    {
      "idiom" : "universal",
      "filename" : "home@2x.png",
      "scale" : "2x"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: Example/Example/Assets.xcassets/Youtube/more_options.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x"
    },
    {
      "idiom" : "universal",
      "filename" : "more_options@2x.png",
      "scale" : "2x"
    },
    {
      "idiom" : "universal",
      "filename" : "more_options@3x.png",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: Example/Example/Assets.xcassets/Youtube/profile.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x"
    },
    {
      "idiom" : "universal",
      "filename" : "profile@2x.png",
      "scale" : "2x"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: Example/Example/Assets.xcassets/Youtube/search.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x"
    },
    {
      "idiom" : "universal",
      "filename" : "search@2x.png",
      "scale" : "2x"
    },
    {
      "idiom" : "universal",
      "filename" : "search@2x-1.png",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: Example/Example/Assets.xcassets/Youtube/trending.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x"
    },
    {
      "idiom" : "universal",
      "filename" : "trending@2x.png",
      "scale" : "2x"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: Example/Example/BarExampleViewController.swift
================================================
//  BarExampleViewController.swift
//  XLPagerTabStrip ( https://github.com/xmartlabs/XLPagerTabStrip )
//
//  Copyright (c) 2017 Xmartlabs ( http://xmartlabs.com )
//
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.

import Foundation
import XLPagerTabStrip

class BarExampleViewController: BarPagerTabStripViewController {
    var isReload = false

    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
    }

    override func viewDidLoad() {

        // set up style before super view did load is executed
        settings.style.selectedBarBackgroundColor = .orange
        // - 

        super.viewDidLoad()
    }

    // MARK: - PagerTabStripDataSource

    override func viewControllers(for pagerTabStripController: PagerTabStripViewController) -> [UIViewController] {

        let child_1 = TableChildExampleViewController(style: .plain, itemInfo: "Table View")
        let child_2 = ChildExampleViewController(itemInfo: "View")
        let child_3 = TableChildExampleViewController(style: .grouped, itemInfo: "Table View 2")
        let child_4 = ChildExampleViewController(itemInfo: "View 2")

        guard isReload else {
            return [child_1, child_2, child_3, child_4]
        }

        var childViewControllers = [child_1, child_2, child_3, child_4]
        for index in childViewControllers.indices {
            let nElements = childViewControllers.count - index
            let n = (Int(arc4random()) % nElements) + index
            if n != index {
                childViewControllers.swapAt(index, n)
            }
        }
        let nItems = 1 + (arc4random() % 4)
        return Array(childViewControllers.prefix(Int(nItems)))
    }

    override func reloadPagerTabStripView() {
        isReload = true
        if arc4random() % 2 == 0 {
            pagerBehaviour = .progressive(skipIntermediateViewControllers: arc4random() % 2 == 0, elasticIndicatorLimit: arc4random() % 2 == 0 )
        } else {
            pagerBehaviour = .common(skipIntermediateViewControllers: arc4random() % 2 == 0)
        }
        super.reloadPagerTabStripView()
    }
}


================================================
FILE: Example/Example/Base.lproj/LaunchScreen.storyboard
================================================
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="9531" systemVersion="15C50" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES" initialViewController="01J-lp-oVM">
    <dependencies>
        <deployment identifier="iOS"/>
        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="9529"/>
    </dependencies>
    <scenes>
        <!--View Controller-->
        <scene sceneID="EHf-IW-A2E">
            <objects>
                <viewController id="01J-lp-oVM" sceneMemberID="viewController">
                    <layoutGuides>
                        <viewControllerLayoutGuide type="top" id="Llm-lL-Icb"/>
                        <viewControllerLayoutGuide type="bottom" id="xb3-aO-Qok"/>
                    </layoutGuides>
                    <view key="view" contentMode="scaleToFill" id="Ze5-6b-2t3">
                        <rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                        <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
                    </view>
                    <simulatedStatusBarMetrics key="simulatedStatusBarMetrics" statusBarStyle="lightContent"/>
                </viewController>
                <placeholder placeholderIdentifier="IBFirstResponder" id="iYj-Kq-Ea1" userLabel="First Responder" sceneMemberID="firstResponder"/>
            </objects>
            <point key="canvasLocation" x="53" y="375"/>
        </scene>
    </scenes>
</document>


================================================
FILE: Example/Example/Base.lproj/Storyboard.storyboard
================================================
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="14460.31" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES" initialViewController="SCa-L8-uTr">
    <device id="retina4_7" orientation="portrait">
        <adaptation id="fullscreen"/>
    </device>
    <dependencies>
        <deployment identifier="iOS"/>
        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="14460.20"/>
        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
    </dependencies>
    <scenes>
        <!--Segmented Example View Controller-->
        <scene sceneID="xrm-yh-2gW">
            <objects>
                <viewController id="h8P-u9-NhP" customClass="SegmentedExampleViewController" customModule="Example" customModuleProvider="target" sceneMemberID="viewController">
                    <layoutGuides>
                        <viewControllerLayoutGuide type="top" id="lwA-FU-jT1"/>
                        <viewControllerLayoutGuide type="bottom" id="HdL-Q7-Anl"/>
                    </layoutGuides>
                    <view key="view" contentMode="scaleToFill" id="BPt-hn-p4R">
                        <rect key="frame" x="0.0" y="0.0" width="375" height="554"/>
                        <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                        <subviews>
                            <scrollView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="D5t-1q-KDh">
                                <rect key="frame" x="0.0" y="0.0" width="375" height="554"/>
                                <color key="backgroundColor" red="0.93725490196078431" green="0.93725490196078431" blue="0.95686274509803926" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                            </scrollView>
                        </subviews>
                        <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                        <constraints>
                            <constraint firstItem="D5t-1q-KDh" firstAttribute="top" secondItem="lwA-FU-jT1" secondAttribute="bottom" id="57b-HV-bZv"/>
                            <constraint firstItem="D5t-1q-KDh" firstAttribute="leading" secondItem="BPt-hn-p4R" secondAttribute="leading" id="ROY-9D-t0I"/>
                            <constraint firstAttribute="trailing" secondItem="D5t-1q-KDh" secondAttribute="trailing" id="eaT-9S-B6g"/>
                            <constraint firstItem="HdL-Q7-Anl" firstAttribute="top" secondItem="D5t-1q-KDh" secondAttribute="bottom" id="mYL-zm-zb0"/>
                        </constraints>
                    </view>
                    <extendedEdge key="edgesForExtendedLayout" top="YES"/>
                    <navigationItem key="navigationItem" id="l1f-vB-6A8">
                        <nil key="title"/>
                        <segmentedControl key="titleView" opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="top" segmentControlStyle="bar" selectedSegmentIndex="0" id="31B-gy-WIH">
                            <rect key="frame" x="20" y="7" width="304" height="30"/>
                            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                            <segments>
                                <segment title="First"/>
                                <segment title="Second"/>
                            </segments>
                            <color key="tintColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                        </segmentedControl>
                        <barButtonItem key="rightBarButtonItem" systemItem="refresh" id="Ndu-OA-iL5">
                            <color key="tintColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                            <connections>
                                <action selector="reloadTapped:" destination="h8P-u9-NhP" id="6uG-1h-owY"/>
                            </connections>
                        </barButtonItem>
                    </navigationItem>
                    <connections>
                        <outlet property="containerView" destination="D5t-1q-KDh" id="sbr-x5-J1L"/>
                        <outlet property="segmentedControl" destination="31B-gy-WIH" id="TxS-id-BP5"/>
                    </connections>
                </viewController>
                <placeholder placeholderIdentifier="IBFirstResponder" id="7KA-v4-CBs" userLabel="First Responder" sceneMemberID="firstResponder"/>
            </objects>
            <point key="canvasLocation" x="2214" y="-167"/>
        </scene>
        <!--Bar-->
        <scene sceneID="sWd-rV-F4O">
            <objects>
                <viewController id="uba-Iz-2L2" customClass="ReloadExampleViewController" customModule="Example" customModuleProvider="target" sceneMemberID="viewController">
                    <layoutGuides>
                        <viewControllerLayoutGuide type="top" id="Emc-3r-MJi"/>
                        <viewControllerLayoutGuide type="bottom" id="NbE-e0-l2n"/>
                    </layoutGuides>
                    <view key="view" contentMode="scaleToFill" id="Mqm-sG-Qyv">
                        <rect key="frame" x="0.0" y="0.0" width="375" height="618"/>
                        <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                        <subviews>
                            <containerView contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="qkQ-UG-MKG">
                                <rect key="frame" x="0.0" y="121" width="375" height="497"/>
                                <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                <connections>
                                    <segue destination="MOL-Zx-vbf" kind="embed" id="i47-4L-xIB"/>
                                </connections>
                            </containerView>
                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="jSE-G2-qe6">
                                <rect key="frame" x="299" y="83" width="56" height="34"/>
                                <state key="normal" title="Reload">
                                    <color key="titleShadowColor" red="0.5" green="0.5" blue="0.5" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                </state>
                                <connections>
                                    <action selector="reloadTapped:" destination="uba-Iz-2L2" eventType="touchUpInside" id="KNI-Zr-Zz0"/>
                                </connections>
                            </button>
                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="kmN-fg-NDL">
                                <rect key="frame" x="20" y="82" width="46" height="34"/>
                                <state key="normal" title="Close">
                                    <color key="titleShadowColor" red="0.5" green="0.5" blue="0.5" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                </state>
                                <connections>
                                    <action selector="closeTapped:" destination="uba-Iz-2L2" eventType="touchUpInside" id="B1v-kE-kC0"/>
                                </connections>
                            </button>
                            <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Storyboard Demo" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumScaleFactor="0.5" translatesAutoresizingMaskIntoConstraints="NO" id="cZN-qT-VUq">
                                <rect key="frame" x="20" y="50" width="335" height="21"/>
                                <fontDescription key="fontDescription" type="boldSystem" pointSize="17"/>
                                <color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                <nil key="highlightedColor"/>
                            </label>
                        </subviews>
                        <color key="backgroundColor" red="0.027450980390000001" green="0.72549019609999998" blue="0.60784313729999995" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                        <constraints>
                            <constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="kmN-fg-NDL" secondAttribute="trailing" constant="50" id="1ha-hv-22z"/>
                            <constraint firstItem="kmN-fg-NDL" firstAttribute="top" secondItem="Emc-3r-MJi" secondAttribute="bottom" constant="62" id="7Rq-MO-b4m"/>
                            <constraint firstItem="kmN-fg-NDL" firstAttribute="leading" secondItem="Mqm-sG-Qyv" secondAttribute="leading" constant="20" symbolic="YES" id="Cpu-aA-0rq"/>
                            <constraint firstItem="NbE-e0-l2n" firstAttribute="top" secondItem="qkQ-UG-MKG" secondAttribute="bottom" id="K6Q-s5-nzV"/>
                            <constraint firstAttribute="trailing" secondItem="jSE-G2-qe6" secondAttribute="trailing" constant="20" symbolic="YES" id="MMy-Mk-MhJ"/>
                            <constraint firstItem="jSE-G2-qe6" firstAttribute="top" secondItem="Emc-3r-MJi" secondAttribute="bottom" constant="63" id="NWc-fy-XOc"/>
                            <constraint firstItem="cZN-qT-VUq" firstAttribute="leading" secondItem="Mqm-sG-Qyv" secondAttribute="leading" constant="20" symbolic="YES" id="OiW-h4-ZuI"/>
                            <constraint firstItem="qkQ-UG-MKG" firstAttribute="leading" secondItem="Mqm-sG-Qyv" secondAttribute="leading" id="bxR-0b-lVS"/>
                            <constraint firstItem="jSE-G2-qe6" firstAttribute="leading" relation="greaterThanOrEqual" secondItem="Mqm-sG-Qyv" secondAttribute="leading" constant="50" id="cpm-b1-Y9n"/>
                            <constraint firstItem="cZN-qT-VUq" firstAttribute="top" secondItem="Emc-3r-MJi" secondAttribute="bottom" constant="30" id="fk2-dC-KBI"/>
                            <constraint firstAttribute="trailing" secondItem="qkQ-UG-MKG" secondAttribute="trailing" id="meZ-CC-eqh"/>
                            <constraint firstItem="qkQ-UG-MKG" firstAttribute="top" secondItem="Emc-3r-MJi" secondAttribute="bottom" constant="101" id="nJw-ag-ddh"/>
                            <constraint firstAttribute="trailing" secondItem="cZN-qT-VUq" secondAttribute="trailing" constant="20" symbolic="YES" id="ue6-fg-BYA"/>
                        </constraints>
                    </view>
                    <tabBarItem key="tabBarItem" title="Bar" image="icon_bar" id="1d9-i6-g9L">
                        <offsetWrapper key="titlePositionAdjustment" horizontal="0.0" vertical="-4"/>
                    </tabBarItem>
                    <navigationItem key="navigationItem" id="ni8-Kh-JRq"/>
                    <connections>
                        <outlet property="titleLabel" destination="cZN-qT-VUq" id="tRG-O0-13z"/>
                    </connections>
                </viewController>
                <placeholder placeholderIdentifier="IBFirstResponder" id="jkN-pv-eFH" userLabel="First Responder" sceneMemberID="firstResponder"/>
            </objects>
            <point key="canvasLocation" x="2140" y="-827.13643178410803"/>
        </scene>
        <!--Buttons Example-->
        <scene sceneID="c3d-TB-Hyh">
            <objects>
                <viewController automaticallyAdjustsScrollViewInsets="NO" id="3jo-Zp-rsN" customClass="ReloadExampleViewController" customModule="Example" customModuleProvider="target" sceneMemberID="viewController">
                    <layoutGuides>
                        <viewControllerLayoutGuide type="top" id="sYC-OQ-Mga"/>
                        <viewControllerLayoutGuide type="bottom" id="LUh-C3-i05"/>
                    </layoutGuides>
                    <view key="view" contentMode="scaleToFill" id="TXd-Bq-amB">
                        <rect key="frame" x="0.0" y="0.0" width="375" height="618"/>
                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                        <subviews>
                            <containerView opaque="NO" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="9rp-Lg-ckk">
                                <rect key="frame" x="0.0" y="64" width="375" height="554"/>
                                <connections>
                                    <segue destination="KF9-Il-rUn" kind="embed" id="PEH-Jc-gva"/>
                                </connections>
                            </containerView>
                        </subviews>
                        <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                        <constraints>
                            <constraint firstItem="9rp-Lg-ckk" firstAttribute="top" secondItem="sYC-OQ-Mga" secondAttribute="bottom" id="Bkl-Sr-KoE"/>
                            <constraint firstItem="LUh-C3-i05" firstAttribute="top" secondItem="9rp-Lg-ckk" secondAttribute="bottom" id="Mel-a7-tS5"/>
                            <constraint firstAttribute="trailing" secondItem="9rp-Lg-ckk" secondAttribute="trailing" id="UY1-sK-nWK"/>
                            <constraint firstItem="9rp-Lg-ckk" firstAttribute="leading" secondItem="TXd-Bq-amB" secondAttribute="leading" id="vBT-dV-v2T"/>
                        </constraints>
                    </view>
                    <navigationItem key="navigationItem" title="Buttons Example" id="anf-yu-jjb">
                        <barButtonItem key="rightBarButtonItem" systemItem="refresh" id="frU-Vs-ZeP">
                            <color key="tintColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                            <connections>
                                <action selector="reloadTapped:" destination="3jo-Zp-rsN" id="eJt-FI-qXo"/>
                            </connections>
                        </barButtonItem>
                    </navigationItem>
                </viewController>
                <placeholder placeholderIdentifier="IBFirstResponder" id="79T-iZ-rpA" userLabel="First Responder" sceneMemberID="firstResponder"/>
            </objects>
            <point key="canvasLocation" x="2206" y="515"/>
        </scene>
        <!--Bar Example View Controller-->
        <scene sceneID="Ufs-nK-0Io">
            <objects>
                <viewController automaticallyAdjustsScrollViewInsets="NO" id="MOL-Zx-vbf" customClass="BarExampleViewController" customModule="Example" customModuleProvider="target" sceneMemberID="viewController">
                    <layoutGuides>
                        <viewControllerLayoutGuide type="top" id="hGu-f8-VlE"/>
                        <viewControllerLayoutGuide type="bottom" id="Twz-Ee-IJq"/>
                    </layoutGuides>
                    <view key="view" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" id="fnu-Fx-A6b">
                        <rect key="frame" x="0.0" y="0.0" width="375" height="497"/>
                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                        <subviews>
                            <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="srh-qY-UAa" customClass="BarView" customModule="XLPagerTabStrip">
                                <rect key="frame" x="0.0" y="20" width="375" height="5"/>
                                <color key="backgroundColor" red="0.029917803763441025" green="0.92659837372448983" blue="0.78518703254703159" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                <constraints>
                                    <constraint firstAttribute="height" constant="5" id="EuL-ap-Nyh"/>
                                </constraints>
                            </view>
                            <scrollView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" bounces="NO" alwaysBounceHorizontal="YES" pagingEnabled="YES" showsHorizontalScrollIndicator="NO" showsVerticalScrollIndicator="NO" bouncesZoom="NO" translatesAutoresizingMaskIntoConstraints="NO" id="gaM-gk-dVJ">
                                <rect key="frame" x="0.0" y="25" width="375" height="472"/>
                                <color key="backgroundColor" red="0.93725490196078431" green="0.93725490196078431" blue="0.95686274509803926" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                            </scrollView>
                        </subviews>
                        <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                        <constraints>
                            <constraint firstAttribute="trailing" secondItem="srh-qY-UAa" secondAttribute="trailing" id="NOC-hJ-B3n"/>
                            <constraint firstItem="gaM-gk-dVJ" firstAttribute="top" secondItem="srh-qY-UAa" secondAttribute="bottom" id="PWm-Hj-8ij"/>
                            <constraint firstItem="Twz-Ee-IJq" firstAttribute="top" secondItem="gaM-gk-dVJ" secondAttribute="bottom" id="XIC-x4-8zR"/>
                            <constraint firstItem="srh-qY-UAa" firstAttribute="top" secondItem="hGu-f8-VlE" secondAttribute="bottom" id="clp-Ty-ewx"/>
                            <constraint firstAttribute="trailing" secondItem="gaM-gk-dVJ" secondAttribute="trailing" id="d54-qR-N0V"/>
                            <constraint firstItem="gaM-gk-dVJ" firstAttribute="leading" secondItem="fnu-Fx-A6b" secondAttribute="leading" id="tbZ-mZ-r06"/>
                            <constraint firstItem="srh-qY-UAa" firstAttribute="leading" secondItem="fnu-Fx-A6b" secondAttribute="leading" id="wjd-Ul-s0i"/>
                        </constraints>
                    </view>
                    <toolbarItems/>
                    <connections>
                        <outlet property="barView" destination="srh-qY-UAa" id="A6r-8O-0MY"/>
                        <outlet property="containerView" destination="gaM-gk-dVJ" id="NqV-Sh-lY6"/>
                    </connections>
                </viewController>
                <placeholder placeholderIdentifier="IBFirstResponder" id="cKU-zQ-C4r" userLabel="First Responder" sceneMemberID="firstResponder"/>
            </objects>
            <point key="canvasLocation" x="3026" y="-825"/>
        </scene>
        <!--Table View Controller-->
        <scene sceneID="BAh-n4-E4d">
            <objects>
                <tableViewController id="SCa-L8-uTr" sceneMemberID="viewController">
                    <tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="static" style="grouped" separatorStyle="default" rowHeight="44" sectionHeaderHeight="18" sectionFooterHeight="18" id="JVf-JY-fRh">
                        <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                        <color key="backgroundColor" red="0.93725490199999995" green="0.93725490199999995" blue="0.95686274510000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                        <sections>
                            <tableViewSection id="8oO-ln-2uT">
                                <cells>
                                    <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" textLabel="Wj6-fs-BjA" style="IBUITableViewCellStyleDefault" id="oTF-WE-AbG">
                                        <rect key="frame" x="0.0" y="35" width="375" height="44"/>
                                        <autoresizingMask key="autoresizingMask"/>
                                        <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="oTF-WE-AbG" id="6M8-2g-4Tv">
                                            <rect key="frame" x="0.0" y="0.0" width="375" height="43.5"/>
                                            <autoresizingMask key="autoresizingMask"/>
                                            <subviews>
                                                <label opaque="NO" multipleTouchEnabled="YES" contentMode="left" text="PageTabController Types" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="Wj6-fs-BjA">
                                                    <rect key="frame" x="16" y="0.0" width="343" height="43.5"/>
                                                    <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                                                    <fontDescription key="fontDescription" type="system" pointSize="16"/>
                                                    <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                                    <nil key="highlightedColor"/>
                                                </label>
                                            </subviews>
                                        </tableViewCellContentView>
                                        <connections>
                                            <segue destination="ptL-BW-nEP" kind="presentation" id="CCB-eR-iX0"/>
                                        </connections>
                                    </tableViewCell>
                                </cells>
                            </tableViewSection>
                            <tableViewSection id="dTY-aA-JSb">
                                <cells>
                                    <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" textLabel="GIb-gr-QYX" style="IBUITableViewCellStyleDefault" id="Lqx-q4-U6Y">
                                        <rect key="frame" x="0.0" y="115" width="375" height="44"/>
                                        <autoresizingMask key="autoresizingMask"/>
                                        <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="Lqx-q4-U6Y" id="6Oi-8U-mzD">
                                            <rect key="frame" x="0.0" y="0.0" width="375" height="43.5"/>
                                            <autoresizingMask key="autoresizingMask"/>
                                            <subviews>
                                                <label opaque="NO" multipleTouchEnabled="YES" contentMode="left" text="Instagram Example" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="GIb-gr-QYX">
                                                    <rect key="frame" x="16" y="0.0" width="343" height="43.5"/>
                                                    <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                                                    <fontDescription key="fontDescription" type="system" pointSize="16"/>
                                                    <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                                    <nil key="highlightedColor"/>
                                                </label>
                                            </subviews>
                                        </tableViewCellContentView>
                                        <connections>
                                            <segue destination="UaK-8y-2uY" kind="presentation" id="sbw-CJ-r5j"/>
                                        </connections>
                                    </tableViewCell>
                                    <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" textLabel="68O-MH-NQl" style="IBUITableViewCellStyleDefault" id="5tn-pD-005">
                                        <rect key="frame" x="0.0" y="159" width="375" height="44"/>
                                        <autoresizingMask key="autoresizingMask"/>
                                        <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="5tn-pD-005" id="U8A-o0-QLd">
                                            <rect key="frame" x="0.0" y="0.0" width="375" height="43.5"/>
                                            <autoresizingMask key="autoresizingMask"/>
                                            <subviews>
                                                <label opaque="NO" multipleTouchEnabled="YES" contentMode="left" text="Youtube Example" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="68O-MH-NQl">
                                                    <rect key="frame" x="16" y="0.0" width="343" height="43.5"/>
                                                    <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                                                    <fontDescription key="fontDescription" type="system" pointSize="16"/>
                                                    <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                                    <nil key="highlightedColor"/>
                                                </label>
                                            </subviews>
                                        </tableViewCellContentView>
                                        <connections>
                                            <segue destination="Pux-pd-JeW" kind="presentation" id="QIG-fU-qdz"/>
                                        </connections>
                                    </tableViewCell>
                                    <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" textLabel="yT9-cg-ta8" style="IBUITableViewCellStyleDefault" id="Vv0-op-FMh">
                                        <rect key="frame" x="0.0" y="203" width="375" height="44"/>
                                        <autoresizingMask key="autoresizingMask"/>
                                        <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="Vv0-op-FMh" id="gmz-RN-PgI">
                                            <rect key="frame" x="0.0" y="0.0" width="375" height="43.5"/>
                                            <autoresizingMask key="autoresizingMask"/>
                                            <subviews>
                                                <label opaque="NO" multipleTouchEnabled="YES" contentMode="left" text="Youtube with Label Example" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="yT9-cg-ta8">
                                                    <rect key="frame" x="16" y="0.0" width="343" height="43.5"/>
                                                    <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                                                    <fontDescription key="fontDescription" type="system" pointSize="16"/>
                                                    <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                                    <nil key="highlightedColor"/>
                                                </label>
                                            </subviews>
                                        </tableViewCellContentView>
                                        <connections>
                                            <segue destination="wtp-ZI-nBV" kind="presentation" id="D5b-rl-ZDt"/>
                                        </connections>
                                    </tableViewCell>
                                    <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" textLabel="bPv-uB-GeS" style="IBUITableViewCellStyleDefault" id="WB2-oq-b4x">
                                        <rect key="frame" x="0.0" y="247" width="375" height="44"/>
                                        <autoresizingMask key="autoresizingMask"/>
                                        <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="WB2-oq-b4x" id="2mV-U6-6pj">
                                            <rect key="frame" x="0.0" y="0.0" width="375" height="43.5"/>
                                            <autoresizingMask key="autoresizingMask"/>
                                            <subviews>
                                                <label opaque="NO" multipleTouchEnabled="YES" contentMode="left" text="Spotify Example" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="bPv-uB-GeS">
                                                    <rect key="frame" x="16" y="0.0" width="343" height="43.5"/>
                                                    <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                                                    <fontDescription key="fontDescription" type="system" pointSize="16"/>
                                                    <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                                    <nil key="highlightedColor"/>
                                                </label>
                                            </subviews>
                                        </tableViewCellContentView>
                                        <connections>
                                            <segue destination="X2Z-nL-0dy" kind="presentation" id="cSg-pT-kjb"/>
                                        </connections>
                                    </tableViewCell>
                                </cells>
                            </tableViewSection>
                        </sections>
                        <connections>
                            <outlet property="dataSource" destination="SCa-L8-uTr" id="qZI-nB-nKG"/>
                            <outlet property="delegate" destination="SCa-L8-uTr" id="V5P-Wq-Fu2"/>
                        </connections>
                    </tableView>
                    <simulatedStatusBarMetrics key="simulatedStatusBarMetrics"/>
                </tableViewController>
                <placeholder placeholderIdentifier="IBFirstResponder" id="tTl-hO-8eV" userLabel="First Responder" sceneMemberID="firstResponder"/>
            </objects>
            <point key="canvasLocation" x="-866" y="-321"/>
        </scene>
        <!--Tab Bar Controller-->
        <scene sceneID="Lv9-yU-Knu">
            <objects>
                <tabBarController automaticallyAdjustsScrollViewInsets="NO" id="ptL-BW-nEP" customClass="TabBarController" customModule="Example" customModuleProvider="target" sceneMemberID="viewController">
                    <toolbarItems/>
                    <simulatedStatusBarMetrics key="simulatedStatusBarMetrics" statusBarStyle="lightContent"/>
                    <nil key="simulatedBottomBarMetrics"/>
                    <tabBar key="tabBar" contentMode="scaleToFill" translucent="NO" id="Ki8-MR-faU">
                        <rect key="frame" x="0.0" y="0.0" width="1000" height="1000"/>
                        <autoresizingMask key="autoresizingMask"/>
                        <color key="tintColor" red="0.027450980390000001" green="0.72549019609999998" blue="0.60784313729999995" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                    </tabBar>
                    <connections>
                        <segue destination="uba-Iz-2L2" kind="relationship" relationship="viewControllers" id="hNx-yW-oR3"/>
                        <segue destination="g7J-zS-0bu" kind="relationship" relationship="viewControllers" id="WG0-Of-C4e"/>
                        <segue destination="jWp-2W-r7X" kind="relationship" relationship="viewControllers" id="uoj-hE-05b"/>
                        <segue destination="b3c-Kr-Yhe" kind="relationship" relationship="viewControllers" id="xMr-zV-ubn"/>
                        <segue destination="uPL-4b-W3j" kind="relationship" relationship="viewControllers" id="klw-Rc-meT"/>
                    </connections>
                </tabBarController>
                <placeholder placeholderIdentifier="IBFirstResponder" id="YsA-SS-Qae" userLabel="First Responder" sceneMemberID="firstResponder"/>
            </objects>
            <point key="canvasLocation" x="413" y="508"/>
        </scene>
        <!--ACTIVITY-->
        <scene sceneID="4ea-9j-0wV">
            <objects>
                <viewController id="Nog-o6-2IJ" customClass="InstagramExampleViewController" customModule="Example" customModuleProvider="target" sceneMemberID="viewController">
                    <layoutGuides>
                        <viewControllerLayoutGuide type="top" id="S6g-Ki-yYf"/>
                        <viewControllerLayoutGuide type="bottom" id="MRO-1B-lmT"/>
                    </layoutGuides>
                    <view key="view" contentMode="scaleToFill" id="sAq-sJ-Hyx">
                        <rect key="frame" x="0.0" y="0.0" width="375" height="603"/>
                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                        <subviews>
                            <collectionView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" dataMode="prototypes" translatesAutoresizingMaskIntoConstraints="NO" id="mzt-Sj-o9z" customClass="ButtonBarView" customModule="XLPagerTabStrip">
                                <rect key="frame" x="0.0" y="0.0" width="375" height="40"/>
                                <constraints>
                                    <constraint firstAttribute="height" constant="40" id="qO1-Vw-pEi"/>
                                </constraints>
                                <collectionViewFlowLayout key="collectionViewLayout" minimumLineSpacing="10" minimumInteritemSpacing="10" id="1ev-zw-4e0">
                                    <size key="itemSize" width="40" height="40"/>
                                    <size key="headerReferenceSize" width="0.0" height="0.0"/>
                                    <size key="footerReferenceSize" width="0.0" height="0.0"/>
                                    <inset key="sectionInset" minX="0.0" minY="0.0" maxX="0.0" maxY="0.0"/>
                                </collectionViewFlowLayout>
                                <cells/>
                            </collectionView>
                            <scrollView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="qpV-GA-z3E">
                                <rect key="frame" x="0.0" y="40" width="375" height="563"/>
                            </scrollView>
                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="9ek-wn-vCu">
                                <rect key="frame" x="28" y="558" width="84" height="33"/>
                                <color key="backgroundColor" red="1" green="0.99997437000274658" blue="0.99999129772186279" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                <constraints>
                                    <constraint firstAttribute="width" constant="84" id="mwL-yn-Fxe"/>
                                </constraints>
                                <fontDescription key="fontDescription" type="system" weight="heavy" pointSize="17"/>
                                <state key="normal" title="CLOSE"/>
                                <connections>
                                    <action selector="closeAction:" destination="Nog-o6-2IJ" eventType="touchUpInside" id="Kz1-wl-TbK"/>
                                </connections>
                            </button>
                        </subviews>
                        <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                        <constraints>
                            <constraint firstItem="mzt-Sj-o9z" firstAttribute="leading" secondItem="sAq-sJ-Hyx" secondAttribute="leading" id="Aoc-dJ-a7o"/>
                            <constraint firstItem="9ek-wn-vCu" firstAttribute="leading" secondItem="sAq-sJ-Hyx" secondAttribute="leadingMargin" constant="12" id="Hhw-CR-gIL"/>
                            <constraint firstItem="MRO-1B-lmT" firstAttribute="top" secondItem="9ek-wn-vCu" secondAttribute="bottom" constant="12" id="K6b-Il-tUq"/>
                            <constraint firstItem="qpV-GA-z3E" firstAttribute="leading" secondItem="sAq-sJ-Hyx" secondAttribute="leading" id="OeX-Ij-Plv"/>
                            <constraint firstAttribute="trailing" secondItem="qpV-GA-z3E" secondAttribute="trailing" id="TuX-C1-B58"/>
                            <constraint firstItem="qpV-GA-z3E" firstAttribute="top" secondItem="mzt-Sj-o9z" secondAttribute="bottom" id="XJC-Gq-PXT"/>
                            <constraint firstItem="mzt-Sj-o9z" firstAttribute="top" secondItem="S6g-Ki-yYf" secondAttribute="bottom" id="c2z-nI-QeM"/>
                            <constraint firstAttribute="trailing" secondItem="mzt-Sj-o9z" secondAttribute="trailing" id="ksD-G3-ZFA"/>
                            <constraint firstAttribute="bottom" secondItem="qpV-GA-z3E" secondAttribute="bottom" id="ne5-8Z-LlT"/>
                        </constraints>
                    </view>
                    <toolbarItems/>
                    <navigationItem key="navigationItem" title="ACTIVITY" id="uUb-iP-vh5"/>
                    <connections>
                        <outlet property="buttonBarView" destination="mzt-Sj-o9z" id="7Bb-jR-elW"/>
                        <outlet property="containerView" destination="qpV-GA-z3E" id="RZf-SK-fcK"/>
                    </connections>
                </viewController>
                <placeholder placeholderIdentifier="IBFirstResponder" id="8gZ-dq-b0g" userLabel="First Responder" sceneMemberID="firstResponder"/>
            </objects>
            <point key="canvasLocation" x="638" y="-448"/>
        </scene>
        <!--Segmented-->
        <scene sceneID="gqT-2d-jBf">
            <objects>
                <navigationController id="g7J-zS-0bu" customClass="NavController" customModule="Example" customModuleProvider="target" sceneMemberID="viewController">
                    <tabBarItem key="tabBarItem" title="Segmented" image="icon_segmented" id="cv3-rF-uFc">
                        <offsetWrapper key="titlePositionAdjustment" horizontal="0.0" vertical="-4"/>
                    </tabBarItem>
                    <toolbarItems/>
                    <navigationBar key="navigationBar" opaque="NO" contentMode="scaleToFill" translucent="NO" id="TRx-vY-PeE">
                        <rect key="frame" x="0.0" y="20" width="375" height="44"/>
                        <autoresizingMask key="autoresizingMask"/>
                        <color key="barTintColor" red="0.027450980390000001" green="0.72549019609999998" blue="0.60784313729999995" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                    </navigationBar>
                    <nil name="viewControllers"/>
                    <connections>
                        <segue destination="h8P-u9-NhP" kind="relationship" relationship="rootViewController" id="Srv-IP-2eX"/>
                    </connections>
                </navigationController>
                <placeholder placeholderIdentifier="IBFirstResponder" id="lsc-9V-4Tm" userLabel="First Responder" sceneMemberID="firstResponder"/>
            </objects>
            <point key="canvasLocation" x="1329" y="-167"/>
        </scene>
        <!--Button-->
        <scene sceneID="aQc-cn-j2T">
            <objects>
                <navigationController automaticallyAdjustsScrollViewInsets="NO" id="jWp-2W-r7X" customClass="NavController" customModule="Example" customModuleProvider="target" sceneMemberID="viewController">
                    <tabBarItem key="tabBarItem" title="Button" image="icon_button" id="xNX-u1-4Tr">
                        <offsetWrapper key="titlePositionAdjustment" horizontal="0.0" vertical="-4"/>
                    </tabBarItem>
                    <toolbarItems/>
                    <navigationBar key="navigationBar" contentMode="scaleToFill" id="2I8-g6-D4S">
                        <rect key="frame" x="0.0" y="20" width="375" height="44"/>
                        <autoresizingMask key="autoresizingMask"/>
                        <color key="barTintColor" red="0.027450980390000001" green="0.72549019609999998" blue="0.60784313729999995" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                        <textAttributes key="titleTextAttributes">
                            <fontDescription key="fontDescription" type="boldSystem" pointSize="17"/>
                            <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                        </textAttributes>
                    </navigationBar>
                    <nil name="viewControllers"/>
                    <connections>
                        <segue destination="3jo-Zp-rsN" kind="relationship" relationship="rootViewController" id="Kvi-Ra-5dQ"/>
                    </connections>
                </navigationController>
                <placeholder placeholderIdentifier="IBFirstResponder" id="U4T-yC-y5O" userLabel="First Responder" sceneMemberID="firstResponder"/>
            </objects>
            <point key="canvasLocation" x="1321" y="515"/>
        </scene>
        <!--Button Bar Example View Controller-->
        <scene sceneID="Ctn-j0-KV6">
            <objects>
                <viewController automaticallyAdjustsScrollViewInsets="NO" id="KF9-Il-rUn" customClass="ButtonBarExampleViewController" customModule="Example" customModuleProvider="target" sceneMemberID="viewController">
                    <layoutGuides>
                        <viewControllerLayoutGuide type="top" id="PhK-DQ-FzX"/>
                        <viewControllerLayoutGuide type="bottom" id="DoJ-0a-eFQ"/>
                    </layoutGuides>
                    <view key="view" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" id="nbo-eG-9Of">
                        <rect key="frame" x="0.0" y="0.0" width="375" height="554"/>
                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                        <subviews>
                            <scrollView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="zn6-8Q-9P3">
                                <rect key="frame" x="0.0" y="63" width="375" height="490"/>
                            </scrollView>
                            <collectionView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" dataMode="prototypes" translatesAutoresizingMaskIntoConstraints="NO" id="FH0-FX-IMd" customClass="ButtonBarView" customModule="XLPagerTabStrip">
                                <rect key="frame" x="0.0" y="20" width="375" height="43"/>
                                <color key="backgroundColor" red="0.027450980390000001" green="0.72549019609999998" blue="0.60784313729999995" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                <constraints>
                                    <constraint firstAttribute="height" constant="43" id="5Gm-jk-c1U"/>
                                </constraints>
                                <collectionViewFlowLayout key="collectionViewLayout" scrollDirection="horizontal" minimumLineSpacing="10" minimumInteritemSpacing="10" id="q1I-j6-uGl">
                                    <size key="itemSize" width="79" height="42"/>
                                    <size key="headerReferenceSize" width="0.0" height="0.0"/>
                                    <size key="footerReferenceSize" width="0.0" height="0.0"/>
                                    <inset key="sectionInset" minX="35" minY="0.0" maxX="35" maxY="0.0"/>
                                </collectionViewFlowLayout>
                                <cells/>
                            </collectionView>
                        </subviews>
                        <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                        <constraints>
                            <constraint firstAttribute="trailing" secondItem="zn6-8Q-9P3" secondAttribute="trailing" id="00Y-OX-DEu"/>
                            <constraint firstItem="FH0-FX-IMd" firstAttribute="leading" secondItem="nbo-eG-9Of" secondAttribute="leading" id="9Vk-yi-Pua"/>
                            <constraint firstItem="zn6-8Q-9P3" firstAttribute="leading" secondItem="nbo-eG-9Of" secondAttribute="leading" id="dYD-LR-3dl"/>
                            <constraint firstItem="zn6-8Q-9P3" firstAttribute="top" secondItem="PhK-DQ-FzX" secondAttribute="bottom" constant="43" id="rzn-Vc-SYa"/>
                            <constraint firstItem="FH0-FX-IMd" firstAttribute="top" secondItem="PhK-DQ-FzX" secondAttribute="bottom" id="s00-0U-AXh"/>
                            <constraint firstItem="DoJ-0a-eFQ" firstAttribute="top" secondItem="zn6-8Q-9P3" secondAttribute="bottom" constant="1" id="wfO-Dh-ZIP"/>
                            <constraint firstAttribute="trailing" secondItem="FH0-FX-IMd" secondAttribute="trailing" id="z4H-9f-Vyy"/>
                        </constraints>
                    </view>
                    <toolbarItems/>
                    <connections>
                        <outlet property="buttonBarView" destination="FH0-FX-IMd" id="c7n-e6-pxW"/>
                        <outlet property="containerView" destination="zn6-8Q-9P3" id="4xs-sV-fxb"/>
                    </connections>
                </viewController>
                <placeholder placeholderIdentifier="IBFirstResponder" id="ls9-Xb-7by" userLabel="First Responder" sceneMemberID="firstResponder"/>
            </objects>
            <point key="canvasLocation" x="3018" y="514.5"/>
        </scene>
        <!--Twitter Example View Controller-->
        <scene sceneID="Zfp-Dk-WxL">
            <objects>
                <viewController id="Vhq-do-uI2" customClass="TwitterExampleViewController" customModule="Example" customModuleProvider="target" sceneMemberID="viewController">
                    <layoutGuides>
                        <viewControllerLayoutGuide type="top" id="OfJ-gb-drI"/>
                        <viewControllerLayoutGuide type="bottom" id="64r-dM-ghd"/>
                    </layoutGuides>
                    <view key="view" contentMode="scaleToFill" id="Eak-dg-otx">
                        <rect key="frame" x="0.0" y="0.0" width="375" height="554"/>
                        <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                        <subviews>
                            <scrollView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="A96-PT-Aon">
                                <rect key="frame" x="0.0" y="0.0" width="375" height="554"/>
                                <color key="backgroundColor" red="0.93725490196078431" green="0.93725490196078431" blue="0.95686274509803926" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                            </scrollView>
                        </subviews>
                        <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                        <constraints>
                            <constraint firstItem="A96-PT-Aon" firstAttribute="top" secondItem="OfJ-gb-drI" secondAttribute="bottom" id="Hq8-hS-mpA"/>
                            <constraint firstItem="A96-PT-Aon" firstAttribute="leading" secondItem="Eak-dg-otx" secondAttribute="leading" id="WLj-sR-uGh"/>
                            <constraint firstItem="64r-dM-ghd" firstAttribute="top" secondItem="A96-PT-Aon" secondAttribute="bottom" id="WbQ-8w-VJ6"/>
                            <constraint firstAttribute="trailing" secondItem="A96-PT-Aon" secondAttribute="trailing" id="qxY-dq-VCq"/>
                        </constraints>
                    </view>
                    <extendedEdge key="edgesForExtendedLayout" top="YES"/>
                    <navigationItem key="navigationItem" id="0Xx-RA-ktC">
                        <nil key="title"/>
                        <barButtonItem key="rightBarButtonItem" systemItem="refresh" id="mhz-8g-Ux7">
                            <color key="tintColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                            <connections>
                                <action selector="reloadTapped:" destination="Vhq-do-uI2" id="fx6-UJ-VG1"/>
                            </connections>
                        </barButtonItem>
                    </navigationItem>
                    <connections>
                        <outlet property="containerView" destination="A96-PT-Aon" id="7oh-72-sHX"/>
                    </connections>
                </viewController>
                <placeholder placeholderIdentifier="IBFirstResponder" id="6HK-op-tmY" userLabel="First Responder" sceneMemberID="firstResponder"/>
            </objects>
            <point key="canvasLocation" x="3026" y="-1490"/>
        </scene>
        <!--Twitter-->
        <scene sceneID="xRb-7u-bt9">
            <objects>
                <navigationController id="uPL-4b-W3j" customClass="NavController" customModule="Example" customModuleProvider="target" sceneMemberID="viewController">
                    <tabBarItem key="tabBarItem" title="Twitter" image="icon_twitter" id="Iyb-I5-OSg">
                        <offsetWrapper key="titlePositionAdjustment" horizontal="0.0" vertical="-4"/>
                    </tabBarItem>
                    <toolbarItems/>
                    <navigationBar key="navigationBar" opaque="NO" contentMode="scaleToFill" translucent="NO" id="iMm-hr-oOU">
                        <rect key="frame" x="0.0" y="20" width="375" height="44"/>
                        <autoresizingMask key="autoresizingMask"/>
                        <color key="barTintColor" red="0.027450980390000001" green="0.72549019609999998" blue="0.60784313729999995" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                    </navigationBar>
                    <nil name="viewControllers"/>
                    <connections>
                        <segue destination="Vhq-do-uI2" kind="relationship" relationship="rootViewController" id="rTN-Tc-B3c"/>
                    </connections>
                </navigationController>
                <placeholder placeholderIdentifier="IBFirstResponder" id="O48-vq-kph" userLabel="First Responder" sceneMemberID="firstResponder"/>
            </objects>
            <point key="canvasLocation" x="2141" y="-1490"/>
        </scene>
        <!--Nav Button-->
        <scene sceneID="aV7-hw-LAb">
            <objects>
                <navigationController automaticallyAdjustsScrollViewInsets="NO" id="b3c-Kr-Yhe" customClass="NavController" customModule="Example" customModuleProvider="target" sceneMemberID="viewController">
                    <tabBarItem key="tabBarItem" title="Nav Button" image="icon_button" id="04T-Ov-veV">
                        <offsetWrapper key="titlePositionAdjustment" horizontal="0.0" vertical="-4"/>
                    </tabBarItem>
                    <toolbarItems/>
                    <navigationBar key="navigationBar" contentMode="scaleToFill" id="PUj-LI-AQ6">
                        <rect key="frame" x="0.0" y="20" width="375" height="44"/>
                        <autoresizingMask key="autoresizingMask"/>
                        <color key="barTintColor" red="0.027450980390000001" green="0.72549019609999998" blue="0.60784313729999995" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                        <textAttributes key="titleTextAttributes">
                            <fontDescription key="fontDescription" type="boldSystem" pointSize="17"/>
                            <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                        </textAttributes>
                    </navigationBar>
                    <nil name="viewControllers"/>
                    <connections>
                        <segue destination="y3e-AR-HhJ" kind="relationship" relationship="rootViewController" id="VFJ-we-pbZ"/>
                    </connections>
                </navigationController>
                <placeholder placeholderIdentifier="IBFirstResponder" id="gov-0c-Zkm" userLabel="First Responder" sceneMemberID="firstResponder"/>
            </objects>
            <point key="canvasLocation" x="1329" y="-2176"/>
        </scene>
        <!--Nav Button Bar Example View Controller-->
        <scene sceneID="fS9-Jp-SNl">
            <objects>
                <viewController id="y3e-AR-HhJ" customClass="NavButtonBarExampleViewController" customModule="Example" customModuleProvider="target" sceneMemberID="viewController">
                    <layoutGuides>
                        <viewControllerLayoutGuide type="top" id="SCP-tk-3Q4"/>
                        <viewControllerLayoutGuide type="bottom" id="blo-XS-xG2"/>
                    </layoutGuides>
                    <view key="view" contentMode="scaleToFill" id="Z8p-ri-ydp">
                        <rect key="frame" x="0.0" y="0.0" width="375" height="554"/>
                        <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                        <subviews>
                            <scrollView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="QoM-XF-R9X">
                                <rect key="frame" x="0.0" y="0.0" width="375" height="554"/>
                                <color key="backgroundColor" red="0.93725490199999995" green="0.93725490199999995" blue="0.95686274510000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                            </scrollView>
                        </subviews>
                        <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                        <constraints>
                            <constraint firstItem="QoM-XF-R9X" firstAttribute="leading" secondItem="Z8p-ri-ydp" secondAttribute="leading" id="BKv-K4-OD3"/>
                            <constraint firstItem="blo-XS-xG2" firstAttribute="top" secondItem="QoM-XF-R9X" secondAttribute="bottom" id="EQI-ir-zAd"/>
                            <constraint firstItem="QoM-XF-R9X" firstAttribute="top" secondItem="SCP-tk-3Q4" secondAttribute="bottom" id="YXa-W1-wcf"/>
                            <constraint firstAttribute="trailing" secondItem="QoM-XF-R9X" secondAttribute="trailing" id="Z2y-Av-PGp"/>
                        </constraints>
                    </view>
                    <extendedEdge key="edgesForExtendedLayout"/>
                    <navigationItem key="navigationItem" id="0ef-Sm-22o">
                        <nil key="title"/>
                    </navigationItem>
                    <connections>
                        <outlet property="containerView" destination="QoM-XF-R9X" id="pgt-p1-mv2"/>
                    </connections>
                </viewController>
                <placeholder placeholderIdentifier="IBFirstResponder" id="JuC-pH-qOM" userLabel="First Responder" sceneMemberID="firstResponder"/>
            </objects>
            <point key="canvasLocation" x="2206" y="-2176"/>
        </scene>
        <!--Nav Controller-->
        <scene sceneID="BoY-J3-ved">
            <objects>
                <navigationController automaticallyAdjustsScrollViewInsets="NO" id="UaK-8y-2uY" customClass="NavController" customModule="Example" customModuleProvider="target" sceneMemberID="viewController">
                    <toolbarItems/>
                    <simulatedStatusBarMetrics key="simulatedStatusBarMetrics" statusBarStyle="lightContent"/>
                    <nil key="simulatedBottomBarMetrics"/>
                    <navigationBar key="navigationBar" contentMode="scaleToFill" translucent="NO" id="nn8-x2-liB">
                        <rect key="frame" x="0.0" y="20" width="375" height="44"/>
                        <autoresizingMask key="autoresizingMask"/>
                        <color key="barTintColor" red="0.086274509803921567" green="0.2627450980392157" blue="0.45490196078431372" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                        <textAttributes key="titleTextAttributes">
                            <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                            <color key="textShadowColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                        </textAttributes>
                    </navigationBar>
                    <nil name="viewControllers"/>
                    <toolbar key="toolbar" opaque="NO" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="4QH-2O-KOp">
                        <autoresizingMask key="autoresizingMask"/>
                    </toolbar>
                    <connections>
                        <segue destination="Nog-o6-2IJ" kind="relationship" relationship="rootViewController" id="ZaA-Pl-99R"/>
                    </connections>
                </navigationController>
                <placeholder placeholderIdentifier="IBFirstResponder" id="8zm-PZ-Mfa" userLabel="First Responder" sceneMemberID="firstResponder"/>
            </objects>
            <point key="canvasLocation" x="-139" y="-783"/>
        </scene>
        <!--Nav Controller-->
        <scene sceneID="5ht-56-wkb">
            <objects>
                <navigationController automaticallyAdjustsScrollViewInsets="NO" id="X2Z-nL-0dy" customClass="NavController" customModule="Example" customModuleProvider="target" sceneMemberID="viewController">
                    <toolbarItems/>
                    <simulatedStatusBarMetrics key="simulatedStatusBarMetrics" statusBarStyle="lightContent"/>
                    <nil key="simulatedBottomBarMetrics"/>
                    <navigationBar key="navigationBar" contentMode="scaleToFill" translucent="NO" id="jNK-DV-g6h">
                        <rect key="frame" x="0.0" y="20" width="375" height="44"/>
                        <autoresizingMask key="autoresizingMask"/>
                        <color key="tintColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                        <color key="barTintColor" red="0.074509803921568626" green="0.078431372549019607" blue="0.078431372549019607" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                        <textAttributes key="titleTextAttributes">
                            <fontDescription key="fontDescription" type="system" weight="light" pointSize="16"/>
                            <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                            <color key="textShadowColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                        </textAttributes>
                    </navigationBar>
                    <nil name="viewControllers"/>
                    <toolbar key="toolbar" opaque="NO" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="iuN-MC-o9b">
                        <autoresizingMask key="autoresizingMask"/>
                    </toolbar>
                    <connections>
                        <segue destination="ZPZ-xC-nU8" kind="relationship" relationship="rootViewController" id="Dzp-Cn-NTS"/>
                    </connections>
                </navigationController>
                <placeholder placeholderIdentifier="IBFirstResponder" id="XbA-bD-0Bd" userLabel="First Responder" sceneMemberID="firstResponder"/>
            </objects>
            <point key="canvasLocation" x="-229" y="-1696"/>
        </scene>
        <!--FIND FRIENDS-->
        <scene sceneID="1YO-Gb-tzF">
            <objects>
                <viewController id="ZPZ-xC-nU8" customClass="SpotifyExampleViewController" customModule="Example" customModuleProvider="target" sceneMemberID="viewController">
                    <layoutGuides>
                        <viewControllerLayoutGuide type="top" id="37F-aC-5kS"/>
                        <viewControllerLayoutGuide type="bottom" id="pHS-02-a6v"/>
                    </layoutGuides>
                    <view key="view" contentMode="scaleToFill" id="iXz-9N-5eX">
                        <rect key="frame" x="0.0" y="0.0" width="375" height="603"/>
                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                        <subviews>
                            <scrollView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="G0A-Qi-hkf">
                                <rect key="frame" x="0.0" y="44" width="375" height="559"/>
                                <color key="backgroundColor" red="0.058823529411764705" green="0.062745098039215685" blue="0.062745098039215685" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                            </scrollView>
                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="ona-3x-9jI">
                                <rect key="frame" x="28" y="558" width="84" height="33"/>
                                <color key="backgroundColor" red="1" green="0.99997437000274658" blue="0.99999129772186279" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                <constraints>
                                    <constraint firstAttribute="width" constant="84" id="MRb-m1-e9D"/>
                                </constraints>
                                <fontDescription key="fontDescription" type="system" weight="heavy" pointSize="17"/>
                                <state key="normal" title="CLOSE"/>
                                <connections>
                                    <action selector="closeAction:" destination="ZPZ-xC-nU8" eventType="touchUpInside" id="Cf9-FB-0vv"/>
                                </connections>
                            </button>
                            <collectionView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" dataMode="prototypes" translatesAutoresizingMaskIntoConstraints="NO" id="uFJ-v9-bHF" customClass="ButtonBarView" customModule="XLPagerTabStrip">
                                <rect key="frame" x="0.0" y="0.0" width="375" height="44"/>
                                <constraints>
                                    <constraint firstAttribute="height" constant="44" id="pkp-lJ-x7y"/>
                                </constraints>
                                <inset key="scrollIndicatorInsets" minX="15" minY="0.0" maxX="15" maxY="0.0"/>
                                <collectionViewFlowLayout key="collectionViewLayout" scrollDirection="horizontal" minimumLineSpacing="10" minimumInteritemSpacing="10" id="0Ci-S2-HdY">
                                    <size key="itemSize" width="40" height="40"/>
                                    <size key="headerReferenceSize" width="0.0" height="0.0"/>
                                    <size key="footerReferenceSize" width="0.0" height="0.0"/>
                                    <inset key="sectionInset" minX="0.0" minY="0.0" maxX="0.0" maxY="0.0"/>
                                </collectionViewFlowLayout>
                                <cells/>
                            </collectionView>
                        </subviews>
                        <color key="backgroundColor" red="0.058823529409999999" green="0.062745098040000002" blue="0.062745098040000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                        <constraints>
                            <constraint firstItem="uFJ-v9-bHF" firstAttribute="leading" secondItem="iXz-9N-5eX" secondAttribute="leading" id="1vs-qH-OyG"/>
                            <constraint firstItem="G0A-Qi-hkf" firstAttribute="top" secondItem="uFJ-v9-bHF" secondAttribute="bottom" id="6k0-SL-4lT"/>
                            <constraint firstItem="pHS-02-a6v" firstAttribute="top" secondItem="ona-3x-9jI" secondAttribute="bottom" constant="12" id="IRb-6h-6i0"/>
                            <constraint firstItem="ona-3x-9jI" firstAttribute="leading" secondItem="iXz-9N-5eX" secondAttribute="leadingMargin" constant="12" id="SWi-SL-ZNj"/>
                            <constraint firstItem="pHS-02-a6v" firstAttribute="top" secondItem="G0A-Qi-hkf" secondAttribute="bottom" id="Xdf-WT-pXp"/>
                            <constraint firstAttribute="trailing" secondItem="G0A-Qi-hkf" secondAttribute="trailing" id="fA2-An-JmH"/>
                            <constraint firstItem="uFJ-v9-bHF" firstAttribute="top" secondItem="37F-aC-5kS" secondAttribute="bottom" id="gSm-yv-aew"/>
                            <constraint firstItem="G0A-Qi-hkf" firstAttribute="leading" secondItem="iXz-9N-5eX" secondAttribute="leading" id="hoh-E2-KXG"/>
                            <constraint firstAttribute="trailing" secondItem="uFJ-v9-bHF" secondAttribute="trailing" id="mbW-rc-wst"/>
                        </constraints>
                    </view>
                    <toolbarItems/>
                    <navigationItem key="navigationItem" title="FIND FRIENDS" id="cSW-Bh-vP3"/>
                    <connections>
                        <outlet property="buttonBarView" destination="uFJ-v9-bHF" id="L01-yp-FgZ"/>
                        <outlet property="containerView" destination="G0A-Qi-hkf" id="IHt-mX-70E"/>
                    </connections>
                </viewController>
                <placeholder placeholderIdentifier="IBFirstResponder" id="oKR-jW-Bht" userLabel="First Responder" sceneMemberID="firstResponder"/>
            </objects>
            <point key="canvasLocation" x="518" y="-1717"/>
        </scene>
        <!--Nav Controller-->
        <scene sceneID="rMg-po-1om">
            <objects>
                <navigationController automaticallyAdjustsScrollViewInsets="NO" id="Pux-pd-JeW" customClass="NavController" customModule="Example" customModuleProvider="target" sceneMemberID="viewController">
                    <toolbarItems/>
                    <simulatedStatusBarMetrics key="simulatedStatusBarMetrics" statusBarStyle="lightContent"/>
                    <nil key="simulatedBottomBarMetrics"/>
                    <navigationBar key="navigationBar" contentMode="scaleToFill" barStyle="black" translucent="NO" id="eWp-ed-SXr">
                        <rect key="frame" x="0.0" y="20" width="375" height="44"/>
                        <autoresizingMask key="autoresizingMask"/>
                        <color key="tintColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                        <color key="barTintColor" red="0.8666666666666667" green="0.0" blue="0.074509803921568626" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                        <textAttributes key="titleTextAttributes">
                            <fontDescription key="fontDescription" type="system" weight="light" pointSize="16"/>
                            <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                            <color key="textShadowColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                        </textAttributes>
                    </navigationBar>
                    <nil name="viewControllers"/>
                    <toolbar key="toolbar" opaque="NO" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="WZf-Dl-jiU">
                        <autoresizingMask key="autoresizingMask"/>
                    </toolbar>
                    <connections>
                        <segue destination="Y1C-8r-zKe" kind="relationship" relationship="rootViewController" id="Z69-15-Zno"/>
                    </connections>
                </navigationController>
                <placeholder placeholderIdentifier="IBFirstResponder" id="eRh-1T-1Zf" userLabel="First Responder" sceneMemberID="firstResponder"/>
            </objects>
            <point key="canvasLocation" x="-229" y="-2388"/>
        </scene>
        <!--Youtube Example View Controller-->
        <scene sceneID="9xA-v7-4VD">
            <objects>
                <viewController id="Y1C-8r-zKe" customClass="YoutubeExampleViewController" customModule="Example" customModuleProvider="target" sceneMemberID="viewController">
                    <layoutGuides>
                        <viewControllerLayoutGuide type="top" id="CFE-pv-hnK"/>
                        <viewControllerLayoutGuide type="bottom" id="AoG-Am-Q4c"/>
                    </layoutGuides>
                    <view key="view" contentMode="scaleToFill" id="yGV-Lf-LC4">
                        <rect key="frame" x="0.0" y="0.0" width="375" height="603"/>
                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                        <subviews>
                            <scrollView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="KX5-0N-ToU">
                                <rect key="frame" x="0.0" y="50" width="375" height="553"/>
                                <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                            </scrollView>
                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="nHU-Vy-hDF">
                                <rect key="frame" x="28" y="558" width="84" height="33"/>
                                <color key="backgroundColor" red="1" green="0.99997437000274658" blue="0.99999129772186279" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                <constraints>
                                    <constraint firstAttribute="width" constant="84" id="O5J-BF-FPZ"/>
                                </constraints>
                                <fontDescription key="fontDescription" type="system" weight="heavy" pointSize="17"/>
                                <state key="normal" title="CLOSE"/>
                                <connections>
                                    <action selector="closeAction:" destination="Y1C-8r-zKe" eventType="touchUpInside" id="edB-lv-N20"/>
                                </connections>
                            </button>
                            <collectionView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" dataMode="prototypes" translatesAutoresizingMaskIntoConstraints="NO" id="CLm-XH-tEa" customClass="ButtonBarView" customModule="XLPagerTabStrip">
                                <rect key="frame" x="0.0" y="0.0" width="375" height="50"/>
                                <constraints>
                                    <constraint firstAttribute="height" constant="50" id="kHr-I4-KkK"/>
                                </constraints>
                                <inset key="scrollIndicatorInsets" minX="15" minY="0.0" maxX="15" maxY="0.0"/>
                                <collectionViewFlowLayout key="collectionViewLayout" scrollDirection="horizontal" minimumLineSpacing="10" minimumInteritemSpacing="10" id="aAD-Hn-Zcp">
                                    <size key="itemSize" width="40" height="40"/>
                                    <size key="headerReferenceSize" width="0.0" height="0.0"/>
                                    <size key="footerReferenceSize" width="0.0" height="0.0"/>
                                    <inset key="sectionInset" minX="0.0" minY="0.0" maxX="0.0" maxY="0.0"/>
                                </collectionViewFlowLayout>
                                <cells/>
                            </collectionView>
                        </subviews>
                        <color key="backgroundColor" red="0.058823529409999999" green="0.062745098040000002" blue="0.062745098040000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                        <constraints>
                            <constraint firstItem="CLm-XH-tEa" firstAttribute="top" secondItem="CFE-pv-hnK" secondAttribute="bottom" id="2Vj-Bn-6pH"/>
                            <constraint firstAttribute="trailing" secondItem="KX5-0N-ToU" secondAttribute="trailing" id="MME-7c-qJO"/>
                            <constraint firstItem="AoG-Am-Q4c" firstAttribute="top" secondItem="nHU-Vy-hDF" secondAttribute="bottom" constant="12" id="PdW-Wp-PRW"/>
                            <constraint firstItem="nHU-Vy-hDF" firstAttribute="leading" secondItem="yGV-Lf-LC4" secondAttribute="leadingMargin" constant="12" id="fFn-Sz-wao"/>
                            <constraint firstAttribute="trailing" secondItem="CLm-XH-tEa" secondAttribute="trailing" id="pZ8-pv-iCu"/>
                            <constraint firstItem="CLm-XH-tEa" firstAttribute="leading" secondItem="yGV-Lf-LC4" secondAttribute="leading" id="qT9-rU-zer"/>
                            <constraint firstItem="KX5-0N-ToU" firstAttribute="leading" secondItem="yGV-Lf-LC4" secondAttribute="leading" id="sIi-YZ-SuG"/>
                            <constraint firstItem="KX5-0N-ToU" firstAttribute="top" secondItem="CLm-XH-tEa" secondAttribute="bottom" id="v7v-sW-2Vl"/>
                            <constraint firstAttribute="bottom" secondItem="KX5-0N-ToU" secondAttribute="bottom" id="xNR-eP-4e1"/>
                        </constraints>
                    </view>
                    <toolbarItems/>
                    <navigationItem key="navigationItem" id="veW-zk-aAq">
                        <barButtonItem key="leftBarButtonItem" title="  Home" id="i3x-mo-WeN"/>
                        <rightBarButtonItems>
                            <barButtonItem image="more_options" id="GC5-Pl-UeW">
                                <color key="tintColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                            </barButtonItem>
                            <barButtonItem image="search" id="uSy-oi-1d3">
                                <color key="tintColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                            </barButtonItem>
                        </rightBarButtonItems>
                    </navigationItem>
                    <connections>
                        <outlet property="buttonBarView" destination="CLm-XH-tEa" id="3Pe-Ao-JWF"/>
                        <outlet property="containerView" destination="KX5-0N-ToU" id="80B-8B-I77"/>
                    </connections>
                </viewController>
                <placeholder placeholderIdentifier="IBFirstResponder" id="2AN-72-EPV" userLabel="First Responder" sceneMemberID="firstResponder"/>
            </objects>
            <point key="canvasLocation" x="518" y="-2380"/>
        </scene>
        <!--Nav Controller-->
        <scene sceneID="f4u-mf-lkq">
            <objects>
                <navigationController automaticallyAdjustsScrollViewInsets="NO" id="wtp-ZI-nBV" customClass="NavController" customModule="Example" customModuleProvider="target" sceneMemberID="viewController">
                    <toolbarItems/>
                    <simulatedStatusBarMetrics key="simulatedStatusBarMetrics" statusBarStyle="lightContent"/>
                    <nil key="simulatedBottomBarMetrics"/>
                    <navigationBar key="navigationBar" contentMode="scaleToFill" barStyle="black" translucent="NO" id="vc1-jF-ATl">
                        <rect key="frame" x="0.0" y="20" width="375" height="44"/>
                        <autoresizingMask key="autoresizingMask"/>
                        <color key="tintColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                        <color key="barTintColor" red="0.86666666670000003" green="0.0" blue="0.074509803920000006" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                        <textAttributes key="titleTextAttributes">
                            <fontDescription key="fontDescription" type="system" weight="light" pointSize="16"/>
                            <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                            <color key="textShadowColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                        </textAttributes>
                    </navigationBar>
                    <nil name="viewControllers"/>
                    <toolbar key="toolbar" opaque="NO" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="ZXR-L3-Qqf">
                        <autoresizingMask key="autoresizingMask"/>
                    </toolbar>
                    <connections>
                        <segue destination="dFD-gP-LEB" kind="relationship" relationship="rootViewController" id="6KU-Mn-bfq"/>
                    </connections>
                </navigationController>
                <placeholder placeholderIdentifier="IBFirstResponder" id="3ZF-Tp-4GF" userLabel="First Responder" sceneMemberID="firstResponder"/>
            </objects>
            <point key="canvasLocation" x="-230" y="-3067"/>
        </scene>
        <!--Youtube With Label Example View Controller-->
        <scene sceneID="Q1j-np-84R">
            <objects>
                <viewController id="dFD-gP-LEB" customClass="YoutubeWithLabelExampleViewController" customModule="Example" customModuleProvider="target" sceneMemberID="viewController">
                    <layoutGuides>
                        <viewControllerLayoutGuide type="top" id="nAm-L7-0C5"/>
                        <viewControllerLayoutGuide type="bottom" id="h18-Xb-G4o"/>
                    </layoutGuides>
                    <view key="view" contentMode="scaleToFill" id="srq-xV-ncW">
                        <rect key="frame" x="0.0" y="0.0" width="375" height="603"/>
                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                        <subviews>
                            <scrollView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="OdC-5s-g0E">
                                <rect key="frame" x="0.0" y="70" width="375" height="533"/>
                                <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                            </scrollView>
                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Ye3-ds-RRe">
                                <rect key="frame" x="28" y="558" width="84" height="33"/>
                                <color key="backgroundColor" red="1" green="0.99997437" blue="0.99999129769999995" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                <constraints>
                                    <constraint firstAttribute="width" constant="84" id="gxr-hQ-rJo"/>
                                </constraints>
                                <fontDescription key="fontDescription" type="system" weight="heavy" pointSize="17"/>
                                <state key="normal" title="CLOSE"/>
                                <connections>
                                    <action selector="closeAction:" destination="dFD-gP-LEB" eventType="touchUpInside" id="tGE-Hd-oiU"/>
                                </connections>
                            </button>
                            <collectionView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" dataMode="prototypes" translatesAutoresizingMaskIntoConstraints="NO" id="NF8-r2-llj" customClass="ButtonBarView" customModule="XLPagerTabStrip">
                                <rect key="frame" x="0.0" y="0.0" width="375" height="70"/>
                                <constraints>
                                    <constraint firstAttribute="height" constant="70" id="eHr-qr-UnQ"/>
                                </constraints>
                                <inset key="scrollIndicatorInsets" minX="15" minY="0.0" maxX="15" maxY="0.0"/>
                                <collectionViewFlowLayout key="collectionViewLayout" scrollDirection="horizontal" minimumLineSpacing="10" minimumInteritemSpacing="10" id="NcL-oD-vkg">
                                    <size key="itemSize" width="40" height="40"/>
                                    <size key="headerReferenceSize" width="0.0" height="0.0"/>
                                    <size key="footerReferenceSize" width="0.0" height="0.0"/>
                                    <inset key="sectionInset" minX="0.0" minY="0.0" maxX="0.0" maxY="0.0"/>
                                </collectionViewFlowLayout>
                                <cells/>
                            </collectionView>
                        </subviews>
                        <color key="backgroundColor" red="0.058823529409999999" green="0.062745098040000002" blue="0.062745098040000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                        <constraints>
                            <constraint firstItem="h18-Xb-G4o" firstAttribute="top" secondItem="Ye3-ds-RRe" secondAttribute="bottom" constant="12" id="8Vn-VD-e3K"/>
                            <constraint firstItem="Ye3-ds-RRe" firstAttribute="leading" secondItem="srq-xV-ncW" secondAttribute="leadingMargin" constant="12" id="PI1-vN-tQn"/>
                            <constraint firstItem="OdC-5s-g0E" firstAttribute="leading" secondItem="srq-xV-ncW" secondAttribute="leading" id="Yhg-Df-lY8"/>
                            <constraint firstItem="NF8-r2-llj" firstAttribute="top" secondItem="nAm-L7-0C5" secondAttribute="bottom" id="cGp-RS-hTW"/>
                            <constraint firstAttribute="trailing" secondItem="NF8-r2-llj" secondAttribute="trailing" id="diI-XY-ee6"/>
                            <constraint firstAttribute="bottom" secondItem="OdC-5s-g0E" secondAttribute="bottom" id="iOV-H7-dW1"/>
                            <constraint firstItem="NF8-r2-llj" firstAttribute="leading" secondItem="srq-xV-ncW" secondAttribute="leading" id="rDI-Ht-8Px"/>
                            <constraint firstItem="OdC-5s-g0E" firstAttribute="top" secondItem="NF8-r2-llj" secondAttribute="bottom" id="vlA-DF-8l2"/>
                            <constraint firstAttribute="trailing" secondItem="OdC-5s-g0E" secondAttribute="trailing" id="xNh-E4-YQz"/>
                        </constraints>
                    </view>
                    <toolbarItems/>
                    <navigationItem key="navigationItem" id="Ogr-CI-ZbI">
                        <barButtonItem key="leftBarButtonItem" title="  Home" id="2RO-X1-xjA"/>
                        <rightBarButtonItems>
                            <barButtonItem image="more_options" id="c1i-ZN-Neo">
                                <color key="tintColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                            </barButtonItem>
                            <barButtonItem image="search" id="nYs-bs-onl">
                                <color key="tintColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                            </barButtonItem>
                        </rightBarButtonItems>
                    </navigationItem>
                    <connections>
                        <outlet property="buttonBarView" destination="NF8-r2-llj" id="mQR-fl-D9w"/>
                        <outlet property="containerView" destination="OdC-5s-g0E" id="4MA-bD-Sxw"/>
                    </connections>
                </viewController>
                <placeholder placeholderIdentifier="IBFirstResponder" id="Loe-25-w2Z" userLabel="First Responder" sceneMemberID="firstResponder"/>
            </objects>
            <point key="canvasLocation" x="518" y="-3067"/>
        </scene>
    </scenes>
    <resources>
        <image name="icon_bar" width="30" height="30"/>
        <image name="icon_button" width="30" height="30"/>
        <image name="icon_segmented" width="30" height="30"/>
        <image name="icon_twitter" width="30" height="30"/>
        <image name="more_options" width="24" height="24"/>
        <image name="search" width="24" height="24"/>
    </resources>
</document>


================================================
FILE: Example/Example/ButtonBarExampleViewController.swift
================================================
//  ButtonBarExampleViewController.swift
//  XLPagerTabStrip ( https://github.com/xmartlabs/XLPagerTabStrip )
//
//  Copyright (c) 2017 Xmartlabs ( http://xmartlabs.com )
//
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.

import Foundation
import XLPagerTabStrip

class ButtonBarExampleViewController: ButtonBarPagerTabStripViewController {

    var isReload = false

    override func viewDidLoad() {
        super.viewDidLoad()

        buttonBarView.selectedBar.backgroundColor = .orange
        buttonBarView.backgroundColor = UIColor(red: 7/255, green: 185/255, blue: 155/255, alpha: 1)
    }

    // MARK: - PagerTabStripDataSource

    override func viewControllers(for pagerTabStripController: PagerTabStripViewController) -> [UIViewController] {
        let child_1 = TableChildExampleViewController(style: .plain, itemInfo: "Table View")
        let child_2 = ChildExampleViewController(itemInfo: "View")
        let child_3 = TableChildExampleViewController(style: .grouped, itemInfo: "Table View 2")
        let child_4 = ChildExampleViewController(itemInfo: "View 2")
        let child_5 = TableChildExampleViewController(style: .plain, itemInfo: "Table View 3")
        let child_6 = ChildExampleViewController(itemInfo: "View 3")
        let child_7 = TableChildExampleViewController(style: .grouped, itemInfo: "Table View 4")
        let child_8 = ChildExampleViewController(itemInfo: "View 4")

        guard isReload else {
            return [child_1, child_2, child_3, child_4, child_5, child_6, child_7, child_8]
        }

        var childViewControllers = [child_1, child_2, child_3, child_4, child_5, child_6, child_7, child_8]

        for index in childViewControllers.indices {
            let nElements = childViewControllers.count - index
            let n = (Int(arc4random()) % nElements) + index
            if n != index {
                childViewControllers.swapAt(index, n)
            }
        }
        let nItems = 1 + (arc4random() % 8)
        return Array(childViewControllers.prefix(Int(nItems)))
    }

    override func reloadPagerTabStripView() {
        isReload = true
        if arc4random() % 2 == 0 {
            pagerBehaviour = .progressive(skipIntermediateViewControllers: arc4random() % 2 == 0, elasticIndicatorLimit: arc4random() % 2 == 0 )
        } else {
            pagerBehaviour = .common(skipIntermediateViewControllers: arc4random() % 2 == 0)
        }
        super.reloadPagerTabStripView()
    }
}


================================================
FILE: Example/Example/ChildControllers/ChildExampleViewController.swift
================================================
//  ChildExampleViewController.swift
//  XLPagerTabStrip ( https://github.com/xmartlabs/XLPagerTabStrip )
//
//  Copyright (c) 2017 Xmartlabs ( http://xmartlabs.com )
//
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.

import Foundation
import XLPagerTabStrip

class ChildExampleViewController: UIViewController, IndicatorInfoProvider {

    var itemInfo: IndicatorInfo = "View"

    init(itemInfo: IndicatorInfo) {
        self.itemInfo = itemInfo
        super.init(nibName: nil, bundle: nil)
    }

    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }

    override func viewDidLoad() {
        super.viewDidLoad()

        let label = UILabel()
        label.translatesAutoresizingMaskIntoConstraints = false
        label.text = "XLPagerTabStrip"

        view.addSubview(label)
        view.backgroundColor = .white

        view.addConstraint(NSLayoutConstraint(item: label, attribute: .centerX, relatedBy: .equal, toItem: view, attribute: .centerX, multiplier: 1, constant: 0))
        view.addConstraint(NSLayoutConstraint(item: label, attribute: .centerY, relatedBy: .equal, toItem: view, attribute: .centerY, multiplier: 1, constant: -50))
    }

    // MARK: - IndicatorInfoProvider

    func indicatorInfo(for pagerTabStripController: PagerTabStripViewController) -> IndicatorInfo {
        return itemInfo
    }
}


================================================
FILE: Example/Example/ChildControllers/TableChildExampleViewController.swift
================================================
//  TableChildExampleViewController.swift
//  XLPagerTabStrip ( https://github.com/xmartlabs/XLPagerTabStrip )
//
//  Copyright (c) 2017 Xmartlabs ( http://xmartlabs.com )
//
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.

import Foundation
import XLPagerTabStrip

class TableChildExampleViewController: UITableViewController, IndicatorInfoProvider {

    let cellIdentifier = "postCell"
    var blackTheme = false
    var itemInfo = IndicatorInfo(title: "View")

    init(style: UITableView.Style, itemInfo: IndicatorInfo) {
        self.itemInfo = itemInfo
        super.init(style: style)
    }

    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }

    override func viewDidLoad() {
        super.viewDidLoad()
        tableView.register(UINib(nibName: "PostCell", bundle: Bundle.main), forCellReuseIdentifier: cellIdentifier)
        tableView.estimatedRowHeight = 600.0
        tableView.rowHeight = UITableView.automaticDimension
        tableView.allowsSelection = false
        if blackTheme {
            tableView.backgroundColor = UIColor(red: 15/255.0, green: 16/255.0, blue: 16/255.0, alpha: 1.0)
        }
    }

    override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)
        tableView.reloadData()
    }

    // MARK: - UITableViewDataSource

    override func numberOfSections(in tableView: UITableView) -> Int {
        return 1
    }

    override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return DataProvider.sharedInstance.postsData.count
    }

    override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        guard let cell = tableView.dequeueReusableCell(withIdentifier: cellIdentifier, for: indexPath) as? PostCell,
            let data = DataProvider.sharedInstance.postsData.object(at: indexPath.row) as? NSDictionary else { return PostCell() }

        cell.configureWithData(data)
        if blackTheme {
            cell.changeStylToBlack()
        }
        return cell
    }

    // MARK: - IndicatorInfoProvider

    func indicatorInfo(for pagerTabStripController: PagerTabStripViewController) -> IndicatorInfo {
        return itemInfo
    }

}


================================================
FILE: Example/Example/Helpers/DataProvider.swift
================================================
//  PostCell.swift
//  XLPagerTabStrip ( https://github.com/xmartlabs/XLPagerTabStrip )
//
//  Copyright (c) 2017 Xmartlabs ( http://xmartlabs.com )
//
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.

import Foundation
import UIKit

class DataProvider {
    static let sharedInstance = DataProvider()

    lazy var postsData: NSArray = {
        let jsonStr = "[{\"post\":{\"id\":113,\"text\":\"We're getting fifty percent of the t-shirt sales\",\"created_at\":\"2014-04-17T00:45:40.556Z\",\"user\":{\"id\":9,\"name\":\"Lisa Simpsons\",\"imageURL\":\"http://obscure-refuge-3149.herokuapp.com/images/Lisa_Simpsons.png\"}}},{\"post\":{\"id\":66,\"text\":\"Eep!\",\"created_at\":\"2014-04-09T21:29:59.982Z\",\"user\":{\"id\":7,\"name\":\"Bart Simpsons\",\"imageURL\":\"http://obscure-refuge-3149.herokuapp.com/images/Bart_Simpsons.png\"}}},{\"post\":{\"id\":42,\"text\":\"I'm not thinking straight, why did I have that wine cooler last month?\",\"created_at\":\"2014-04-09T17:58:41.704Z\",\"user\":{\"id\":5,\"name\":\"Ned Flanders\",\"imageURL\":\"http://obscure-refuge-3149.herokuapp.com/images/Ned_Flanders.png\"}}},{\"post\":{\"id\":84,\"text\":\"Son, when you participate in sporting events, it's not whether you win or lose: it's how drunk you get.\",\"created_at\":\"2014-04-03T20:21:32.119Z\",\"user\":{\"id\":8,\"name\":\"Homer Simpsons\",\"imageURL\":\"http://obscure-refuge-3149.herokuapp.com/images/Homer_Simpsons.png\"}}},{\"post\":{\"id\":75,\"text\":\"I'm normally not a praying man, but if you're up there, please save me Superman.\",\"created_at\":\"2014-04-03T02:04:43.053Z\",\"user\":{\"id\":8,\"name\":\"Homer Simpsons\",\"imageURL\":\"http://obscure-refuge-3149.herokuapp.com/images/Homer_Simpsons.png\"}}},{\"post\":{\"id\":26,\"text\":\"Homer, please get rid of that pig.\",\"created_at\":\"2014-04-02T03:48:56.381Z\",\"user\":{\"id\":3,\"name\":\"Marge Simpsons\",\"imageURL\":\"http://obscure-refuge-3149.herokuapp.com/images/Marge_Simpsons.png\"}}},{\"post\":{\"id\":40,\"text\":\"You sold weapon-grade plutoneum to the Iraqies without a mark up.\",\"created_at\":\"2014-03-28T05:23:24.657Z\",\"user\":{\"id\":4,\"name\":\"Montgomery Burns\",\"imageURL\":\"http://obscure-refuge-3149.herokuapp.com/images/Montgomery_Burns.png\"}}},{\"post\":{\"id\":28,\"text\":\"Homer, don't say that. The way I see it, if you raised three children who can knock out and hog tie a perfect stranger you must be doing something right.\",\"created_at\":\"2014-03-22T14:24:22.408Z\",\"user\":{\"id\":3,\"name\":\"Marge Simpsons\",\"imageURL\":\"http://obscure-refuge-3149.herokuapp.com/images/Marge_Simpsons.png\"}}},{\"post\":{\"id\":48,\"text\":\"Hi-dilly-ho, neighborinos!\",\"created_at\":\"2014-03-21T08:39:20.764Z\",\"user\":{\"id\":5,\"name\":\"Ned Flanders\",\"imageURL\":\"http://obscure-refuge-3149.herokuapp.com/images/Ned_Flanders.png\"}}},{\"post\":{\"id\":78,\"text\":\"Maybe, just once, someone will call me 'Sir' without adding, 'You're making a scene.'\",\"created_at\":\"2014-03-20T02:44:28.075Z\",\"user\":{\"id\":8,\"name\":\"Homer Simpsons\",\"imageURL\":\"http://obscure-refuge-3149.herokuapp.com/images/Homer_Simpsons.png\"}}},{\"post\":{\"id\":33,\"text\":\"This is the type of trickery I pay you for.\",\"created_at\":\"2014-03-18T08:25:14.507Z\",\"user\":{\"id\":4,\"name\":\"Montgomery Burns\",\"imageURL\":\"http://obscure-refuge-3149.herokuapp.com/images/Montgomery_Burns.png\"}}},{\"post\":{\"id\":72,\"text\":\"Oh, so they have internet on computers now!\",\"created_at\":\"2014-03-03T19:02:56.032Z\",\"user\":{\"id\":8,\"name\":\"Homer Simpsons\",\"imageURL\":\"http://obscure-refuge-3149.herokuapp.com/images/Homer_Simpsons.png\"}}},{\"post\":{\"id\":1,\"text\":\"You know, I do! I mean, there comes a time in a man's life when he asks himself, 'who will float my corpse down the Ganges?'\",\"created_at\":\"2014-02-24T14:09:00.912Z\",\"user\":{\"id\":1,\"name\":\"Apu Nahasapeemapetilon\",\"imageURL\":\"http://obscure-refuge-3149.herokuapp.com/images/Apu_Nahasapeemapetilon.png\"}}},{\"post\":{\"id\":62,\"text\":\"Ay Caramba!\",\"created_at\":\"2014-02-18T16:38:37.958Z\",\"user\":{\"id\":7,\"name\":\"Bart Simpsons\",\"imageURL\":\"http://obscure-refuge-3149.herokuapp.com/images/Bart_Simpsons.png\"}}},{\"post\":{\"id\":19,\"text\":\"Throughout the ages, the finger painter, the Play-Doh sculptor, the Lincoln Logger, stood alone against the daycare teacher of her time. She did not live to earn aproval stickers, she lived for herself, that she might achieve things that are the glory of all humanity. These are my terms. I do not care to play by any others. And now, if the jury will allow me, it's naptime.\",\"created_at\":\"2014-02-16T22:11:33.236Z\",\"user\":{\"id\":2,\"name\":\"Maggie Simpsons\",\"imageURL\":\"http://obscure-refuge-3149.herokuapp.com/images/Maggie_Simpsons.png\"}}},{\"post\":{\"id\":76,\"text\":\"Son, if you really want something in this life, you have to work for it. Now quiet! They're about to announce the lottery numbers.\",\"created_at\":\"2014-02-16T19:09:55.062Z\",\"user\":{\"id\":8,\"name\":\"Homer Simpsons\",\"imageURL\":\"http://obscure-refuge-3149.herokuapp.com/images/Homer_Simpsons.png\"}}},{\"post\":{\"id\":22,\"text\":\"Somebody throw the goddamn bomb!\",\"created_at\":\"2014-02-16T13:50:25.313Z\",\"user\":{\"id\":3,\"name\":\"Marge Simpsons\",\"imageURL\":\"http://obscure-refuge-3149.herokuapp.com/images/Marge_Simpsons.png\"}}},{\"post\":{\"id\":36,\"text\":\"Oh, so mother nature needs a favor? Well, maybe she should have thought of that when she was besetting us with droughts and floods and poison monkeys.\",\"created_at\":\"2014-02-13T06:51:57.549Z\",\"user\":{\"id\":4,\"name\":\"Montgomery Burns\",\"imageURL\":\"http://obscure-refuge-3149.herokuapp.com/images/Montgomery_Burns.png\"}}}]"
        let jsonData = jsonStr.data(using: String.Encoding.utf8)
        let res = try! JSONSerialization.jsonObject(with: jsonData!, options: []) // swiftlint:disable:this force_try
        return res as! NSArray // swiftlint:disable:this force_cast
    }()
}

class NavController: UINavigationController {

    override var preferredStatusBarStyle: UIStatusBarStyle {
        return .lightContent
    }

}

class TabBarController: UITabBarController {

    override var preferredStatusBarStyle: UIStatusBarStyle {
        return .lightContent
    }

}


================================================
FILE: Example/Example/Helpers/PostCell.swift
================================================
//  PostCell.swift
//  XLPagerTabStrip ( https://github.com/xmartlabs/XLPagerTabStrip )
//
//  Copyright (c) 2017 Xmartlabs ( http://xmartlabs.com )
//
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.

import UIKit

class PostCell: UITableViewCell {

    @IBOutlet weak var userImage: UIImageView!
    @IBOutlet weak var postName: UILabel!
    @IBOutlet weak var postText: UILabel!

    override func awakeFromNib() {
        super.awakeFromNib()
        userImage.layer.cornerRadius = 10.0
    }

    func configureWithData(_ data: NSDictionary) {
        if let post = data["post"] as? NSDictionary, let user = post["user"] as? NSDictionary {
            postName.text = user["name"] as? String
            postText.text = post["text"] as? String
            userImage.image = UIImage(named: postName.text!.replacingOccurrences(of: " ", with: "_"))
        }
    }

    func changeStylToBlack() {
        userImage?.layer.cornerRadius = 30.0
        postText.text = nil
        postName.font = UIFont(name: "HelveticaNeue-Light", size:18) ?? .systemFont(ofSize: 18)
        postName.textColor = .white
        backgroundColor = UIColor(red: 15/255.0, green: 16/255.0, blue: 16/255.0, alpha: 1.0)
    }
}


================================================
FILE: Example/Example/Helpers/PostCell.xib
================================================
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="14460.31" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
    <device id="retina4_7" orientation="portrait">
        <adaptation id="fullscreen"/>
    </device>
    <dependencies>
        <deployment identifier="iOS"/>
        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="14460.20"/>
        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
    </dependencies>
    <objects>
        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
        <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
        <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" preservesSuperviewLayoutMargins="YES" selectionStyle="default" indentationWidth="10" rowHeight="84" id="b8n-8Y-pxb" customClass="PostCell" customModule="Example" customModuleProvider="target">
            <rect key="frame" x="0.0" y="0.0" width="375" height="84"/>
            <autoresizingMask key="autoresizingMask"/>
            <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" preservesSuperviewLayoutMargins="YES" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="b8n-8Y-pxb" id="K88-rd-6gZ">
                <rect key="frame" x="0.0" y="0.0" width="375" height="83.5"/>
                <autoresizingMask key="autoresizingMask"/>
                <subviews>
                    <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="wQ5-jv-KcD">
                        <rect key="frame" x="12" y="12" width="60" height="60"/>
                        <constraints>
                            <constraint firstAttribute="height" constant="60" id="a22-Yz-B14"/>
                            <constraint firstAttribute="width" constant="60" id="h3B-3k-YAV"/>
                        </constraints>
                    </imageView>
                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="1000" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Xt9-VS-IpY">
                        <rect key="frame" x="80" y="12" width="275" height="18"/>
                        <fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
                        <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
                        <nil key="highlightedColor"/>
                    </label>
                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="fIC-u4-GzA">
                        <rect key="frame" x="80" y="38" width="275" height="25.5"/>
                        <constraints>
                            <constraint firstAttribute="height" relation="greaterThanOrEqual" constant="18" id="KTU-C8-rru"/>
                        </constraints>
                        <fontDescription key="fontDescription" type="system" pointSize="15"/>
                        <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
                        <nil key="highlightedColor"/>
                    </label>
                </subviews>
                <constraints>
                    <constraint firstItem="wQ5-jv-KcD" firstAttribute="top" secondItem="K88-rd-6gZ" secondAttribute="top" constant="12" id="0nA-Ff-0jE"/>
                    <constraint firstItem="fIC-u4-GzA" firstAttribute="leading" secondItem="Xt9-VS-IpY" secondAttribute="leading" id="7Jd-TH-zoU"/>
                    <constraint firstItem="Xt9-VS-IpY" firstAttribute="leading" secondItem="wQ5-jv-KcD" secondAttribute="trailing" constant="8" id="CJD-v3-ZI5"/>
                    <constraint firstAttribute="bottom" secondItem="fIC-u4-GzA" secondAttribute="bottom" priority="999" constant="20" id="Dsa-9n-hAy"/>
                    <constraint firstItem="Xt9-VS-IpY" firstAttribute="top" secondItem="K88-rd-6gZ" secondAttribute="top" constant="12" id="aeT-ml-Joy"/>
                    <constraint firstItem="fIC-u4-GzA" firstAttribute="width" secondItem="Xt9-VS-IpY" secondAttribute="width" id="cf4-gX-Utu"/>
                    <constraint firstItem="wQ5-jv-KcD" firstAttribute="leading" secondItem="K88-rd-6gZ" secondAttribute="leading" constant="12" id="hyC-j1-1ur"/>
                    <constraint firstAttribute="trailing" secondItem="Xt9-VS-IpY" secondAttribute="trailing" constant="20" symbolic="YES" id="xNw-iC-WEv"/>
                    <constraint firstItem="fIC-u4-GzA" firstAttribute="top" secondItem="Xt9-VS-IpY" secondAttribute="bottom" constant="8" id="ypP-AG-hch"/>
                </constraints>
            </tableViewCellContentView>
            <connections>
                <outlet property="postName" destination="Xt9-VS-IpY" id="VYd-5D-WAS"/>
                <outlet property="postText" destination="fIC-u4-GzA" id="GvN-fW-jWH"/>
                <outlet property="userImage" destination="wQ5-jv-KcD" id="T64-Nd-dc9"/>
            </connections>
            <point key="canvasLocation" x="348" y="692"/>
        </tableViewCell>
    </objects>
</document>


================================================
FILE: Example/Example/Info.plist
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>CFBundleDevelopmentRegion</key>
	<string>en</string>
	<key>CFBundleExecutable</key>
	<string>$(EXECUTABLE_NAME)</string>
	<key>CFBundleIdentifier</key>
	<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
	<key>CFBundleInfoDictionaryVersion</key>
	<string>6.0</string>
	<key>CFBundleName</key>
	<string>$(PRODUCT_NAME)</string>
	<key>CFBundlePackageType</key>
	<string>APPL</string>
	<key>CFBundleShortVersionString</key>
	<string>9.0.0</string>
	<key>CFBundleSignature</key>
	<string>????</string>
	<key>CFBundleVersion</key>
	<string>1</string>
	<key>LSRequiresIPhoneOS</key>
	<true/>
	<key>UILaunchStoryboardName</key>
	<string>LaunchScreen</string>
	<key>UIMainStoryboardFile</key>
	<string>Storyboard</string>
	<key>UIRequiredDeviceCapabilities</key>
	<array>
		<string>armv7</string>
	</array>
	<key>UISupportedInterfaceOrientations</key>
	<array>
		<string>UIInterfaceOrientationPortrait</string>
		<string>UIInterfaceOrientationLandscapeLeft</string>
		<string>UIInterfaceOrientationLandscapeRight</string>
	</array>
	<key>UIViewControllerBasedStatusBarAppearance</key>
	<true/>
</dict>
</plist>


================================================
FILE: Example/Example/Instagram/InstagramExampleViewController.swift
================================================
//  SegmentedExampleViewController.swift
//  XLPagerTabStrip ( https://github.com/xmartlabs/XLPagerTabStrip )
//
//  Copyright (c) 2017 Xmartlabs ( http://xmartlabs.com )
//
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.

import Foundation
import XLPagerTabStrip

class InstagramExampleViewController: ButtonBarPagerTabStripViewController {

    @IBOutlet weak var shadowView: UIView!
    let blueInstagramColor = UIColor(red: 37/255.0, green: 111/255.0, blue: 206/255.0, alpha: 1.0)

    override func viewDidLoad() {
        // change selected bar color
        settings.style.buttonBarBackgroundColor = .white
        settings.style.buttonBarItemBackgroundColor = .white
        settings.style.selectedBarBackgroundColor = blueInstagramColor
        settings.style.buttonBarItemFont = .boldSystemFont(ofSize: 14)
        settings.style.selectedBarHeight = 2.0
        settings.style.buttonBarMinimumLineSpacing = 0
        settings.style.buttonBarItemTitleColor = .black
        settings.style.buttonBarItemsShouldFillAvailableWidth = true
        settings.style.buttonBarLeftContentInset = 0
        settings.style.buttonBarRightContentInset = 0

        changeCurrentIndexProgressive = { [weak self] (oldCell: ButtonBarViewCell?, newCell: ButtonBarViewCell?, progressPercentage: CGFloat, changeCurrentIndex: Bool, animated: Bool) -> Void in
            guard changeCurrentIndex == true else { return }
            oldCell?.label.textColor = .black
            newCell?.label.textColor = self?.blueInstagramColor
        }
        super.viewDidLoad()
    }

    // MARK: - PagerTabStripDataSource

    override func viewControllers(for pagerTabStripController: PagerTabStripViewController) -> [UIViewController] {
        let child_1 = TableChildExampleViewController(style: .plain, itemInfo: "FOLLOWING")
        let child_2 = ChildExampleViewController(itemInfo: "YOU")
        return [child_1, child_2]
    }

    // MARK: - Custom Action

    @IBAction func closeAction(_ sender: UIButton) {
        dismiss(animated: true, completion: nil)
    }
}


================================================
FILE: Example/Example/NavButtonBarExampleViewController.swift
================================================
//  NavButtonBarExampleViewController.swift
//  XLPagerTabStrip ( https://github.com/xmartlabs/XLPagerTabStrip )
//
//  Copyright (c) 2017 Xmartlabs ( http://xmartlabs.com )
//
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.

import Foundation
import XLPagerTabStrip

class NavButtonBarExampleViewController: ButtonBarPagerTabStripViewController {
    var isReload = false

    override func viewDidLoad() {
        // set up style before super view did load is executed
        settings.style.buttonBarBackgroundColor = .clear
        settings.style.selectedBarBackgroundColor = .orange
        //-
        super.viewDidLoad()

        buttonBarView.removeFromSuperview()
        navigationController?.navigationBar.addSubview(buttonBarView)

        changeCurrentIndexProgressive = { (oldCell: ButtonBarViewCell?, newCell: ButtonBarViewCell?, progressPercentage: CGFloat, changeCurrentIndex: Bool, animated: Bool) -> Void in
            guard changeCurrentIndex == true else { return }

            oldCell?.label.textColor = UIColor(white: 1, alpha: 0.6)
            newCell?.label.textColor = .white

            if animated {
                UIView.animate(withDuration: 0.1, animations: { () -> Void in
                    newCell?.transform = CGAffineTransform(scaleX: 1.0, y: 1.0)
                    oldCell?.transform = CGAffineTransform(scaleX: 0.8, y: 0.8)
                })
            } else {
                newCell?.transform = CGAffineTransform(scaleX: 1.0, y: 1.0)
                oldCell?.transform = CGAffineTransform(scaleX: 0.8, y: 0.8)
            }
        }
    }

    // MARK: - PagerTabStripDataSource

    override func viewControllers(for pagerTabStripController: PagerTabStripViewController) -> [UIViewController] {
        let child_1 = TableChildExampleViewController(style: .plain, itemInfo: "Table View")
        let child_2 = ChildExampleViewController(itemInfo: "View")
        let child_3 = TableChildExampleViewController(style: .grouped, itemInfo: "Table View 2")
        let child_4 = ChildExampleViewController(itemInfo: "View 1")
        let child_5 = TableChildExampleViewController(style: .plain, itemInfo: "Table View 3")
        let child_6 = ChildExampleViewController(itemInfo: "View 2")
        let child_7 = TableChildExampleViewController(style: .grouped, itemInfo: "Table View 4")
        let child_8 = ChildExampleViewController(itemInfo: "View 3")

        guard isReload else {
            return [child_1, child_2, child_3, child_4, child_5, child_6, child_7, child_8]
        }

        var childViewControllers = [child_1, child_2, child_3, child_4, child_5, child_6, child_7, child_8]

        for index in childViewControllers.indices {
            let nElements = childViewControllers.count - index
            let n = (Int(arc4random()) % nElements) + index
            if n != index {
                childViewControllers.swapAt(index, n)
            }
        }
        let nItems = 1 + (arc4random() % 8)
        return Array(childViewControllers.prefix(Int(nItems)))
    }

    override func reloadPagerTabStripView() {
        isReload = true
        if arc4random() % 2 == 0 {
            pagerBehaviour = .progressive(skipIntermediateViewControllers: arc4random() % 2 == 0, elasticIndicatorLimit: arc4random() % 2 == 0 )
        } else {
            pagerBehaviour = .common(skipIntermediateViewControllers: arc4random() % 2 == 0)
        }
        super.reloadPagerTabStripView()
    }

    override func configureCell(_ cell: ButtonBarViewCell, indicatorInfo: IndicatorInfo) {
        super.configureCell(cell, indicatorInfo: indicatorInfo)
        cell.backgroundColor = .clear
    }
}


================================================
FILE: Example/Example/ReloadExampleViewController.swift
================================================
//  ReloadExampleViewController.swift
//  XLPagerTabStrip ( https://github.com/xmartlabs/XLPagerTabStrip )
//
//  Copyright (c) 2017 Xmartlabs ( http://xmartlabs.com )
//
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.

import UIKit
import XLPagerTabStrip

class ReloadExampleViewController: UIViewController {

    @IBOutlet lazy var titleLabel: UILabel! = {
        let label = UILabel()
        return label
    }()

    lazy var bigLabel: UILabel = {
        let bigLabel = UILabel()
        bigLabel.backgroundColor = .clear
        bigLabel.textColor = .white
        bigLabel.font = UIFont.boldSystemFont(ofSize: 20)
        bigLabel.adjustsFontSizeToFitWidth = true
        return bigLabel
    }()

    override func viewDidLoad() {
        super.viewDidLoad()

        if navigationController != nil {
            navigationItem.titleView = bigLabel
            bigLabel.sizeToFit()
        }

        if let pagerViewController = children.first as? PagerTabStripViewController {
            updateTitle(of: pagerViewController)
        }
    }

    @IBAction func reloadTapped(_ sender: UIBarButtonItem) {
        for childViewController in children {
            guard let child = childViewController as? PagerTabStripViewController else {
                continue
            }
            child.reloadPagerTabStripView()
            updateTitle(of: child)
            break
        }
    }

    @IBAction func closeTapped(_ sender: UIButton) {
        dismiss(animated: true, completion: nil)
    }

    func updateTitle(of pagerTabStripViewController: PagerTabStripViewController) {
        func stringFromBool(_ bool: Bool) -> String {
            return bool ? "YES" : "NO"
        }

        titleLabel.text = "Progressive = \(stringFromBool(pagerTabStripViewController.pagerBehaviour.isProgressiveIndicator))  ElasticLimit = \(stringFromBool(pagerTabStripViewController.pagerBehaviour.isElasticIndicatorLimit))"

        (navigationItem.titleView as? UILabel)?.text = titleLabel.text
        navigationItem.titleView?.sizeToFit()
    }

    override var preferredStatusBarStyle: UIStatusBarStyle {
        return .lightContent
    }
}


================================================
FILE: Example/Example/SegmentedExampleViewController.swift
================================================
//  SegmentedExampleViewController.swift
//  XLPagerTabStrip ( https://github.com/xmartlabs/XLPagerTabStrip )
//
//  Copyright (c) 2017 Xmartlabs ( http://xmartlabs.com )
//
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.

import Foundation
import XLPagerTabStrip

class SegmentedExampleViewController: SegmentedPagerTabStripViewController {

    var isReload = false

    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
        // change segmented style
        settings.style.segmentedControlColor = .white
    }

    // MARK: - PagerTabStripDataSource

    override func viewControllers(for pagerTabStripController: PagerTabStripViewController) -> [UIViewController] {
        let child_1 = TableChildExampleViewController(style: .plain, itemInfo: "Table View")
        let child_2 = ChildExampleViewController(itemInfo: "View")
        let child_3 = TableChildExampleViewController(style: .grouped, itemInfo: "Table View 2")
        let child_4 = ChildExampleViewController(itemInfo: "View 2")

        guard isReload else {
            return [child_1, child_2, child_3, child_4]
        }

        var childViewControllers = [child_1, child_2, child_3, child_4]
        let count = childViewControllers.count

        for index in childViewControllers.indices {
            let nElements = count - index
            let n = (Int(arc4random()) % nElements) + index
            if n != index {
                childViewControllers.swapAt(index, n)
            }
        }
        let nItems = 1 + (arc4random() % 4)
        return Array(childViewControllers.prefix(Int(nItems)))
    }

    @IBAction func reloadTapped(_ sender: UIBarButtonItem) {
        isReload = true
        pagerBehaviour = .common(skipIntermediateViewControllers: arc4random() % 2 == 0)
        reloadPagerTabStripView()
    }
}


================================================
FILE: Example/Example/Spotify/SpotifyExampleViewController.swift
================================================
//  SpotifyExampleViewController.swift
//  XLPagerTabStrip ( https://github.com/xmartlabs/XLPagerTabStrip )
//
//  Copyright (c) 2017 Xmartlabs ( http://xmartlabs.com )
//
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.

import Foundation
import XLPagerTabStrip

class SpotifyExampleViewController: ButtonBarPagerTabStripViewController {

    @IBOutlet weak var shadowView: UIView!

    let graySpotifyColor = UIColor(red: 21/255.0, green: 21/255.0, blue: 24/255.0, alpha: 1.0)
    let darkGraySpotifyColor = UIColor(red: 19/255.0, green: 20/255.0, blue: 20/255.0, alpha: 1.0)

    override func viewDidLoad() {
        // change selected bar color
        settings.style.buttonBarBackgroundColor = graySpotifyColor
        settings.style.buttonBarItemBackgroundColor = graySpotifyColor
        settings.style.selectedBarBackgroundColor = UIColor(red: 33/255.0, green: 174/255.0, blue: 67/255.0, alpha: 1.0)
        settings.style.buttonBarItemFont = UIFont(name: "HelveticaNeue-Light", size:14) ?? UIFont.systemFont(ofSize: 14)
        settings.style.selectedBarHeight = 3.0
        settings.style.buttonBarMinimumLineSpacing = 0
        settings.style.buttonBarItemTitleColor = .black
        settings.style.buttonBarItemsShouldFillAvailableWidth = true

        settings.style.buttonBarLeftContentInset = 20
        settings.style.buttonBarRightContentInset = 20

        changeCurrentIndexProgressive = { (oldCell: ButtonBarViewCell?, newCell: ButtonBarViewCell?, progressPercentage: CGFloat, changeCurrentIndex: Bool, animated: Bool) -> Void in
            guard changeCurrentIndex == true else { return }
            oldCell?.label.textColor = UIColor(red: 138/255.0, green: 138/255.0, blue: 144/255.0, alpha: 1.0)
            newCell?.label.textColor = .white
        }
        super.viewDidLoad()
    }

    // MARK: - PagerTabStripDataSource

    override func viewControllers(for pagerTabStripController: PagerTabStripViewController) -> [UIViewController] {
        let child_1 = TableChildExampleViewController(style: .plain, itemInfo: IndicatorInfo(title: "FRIENDS"))
        child_1.blackTheme = true
        let child_2 = TableChildExampleViewController(style: .plain, itemInfo: IndicatorInfo(title: "FEATURED"))
        child_2.blackTheme = true
        return [child_1, child_2]
    }

    // MARK: - Actions

    @IBAction func closeAction(_ sender: UIButton) {
        dismiss(animated: true, completion: nil)
    }
}


================================================
FILE: Example/Example/TwitterExampleViewController.swift
================================================
//  TwitterExampleViewController.swift
//  XLPagerTabStrip ( https://github.com/xmartlabs/XLPagerTabStrip )
//
//  Copyright (c) 2017 Xmartlabs ( http://xmartlabs.com )
//
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.

import Foundation
import XLPagerTabStrip

class TwitterExampleViewController: TwitterPagerTabStripViewController {
    var isReload = false

    override func viewControllers(for pagerTabStripController: PagerTabStripViewController) -> [UIViewController] {

        let child_1 = TableChildExampleViewController(style: .plain, itemInfo: "TableView")
        let child_2 = ChildExampleViewController(itemInfo: "View")
        let child_3 = TableChildExampleViewController(style: .grouped, itemInfo: "TableView 2")
        let child_4 = ChildExampleViewController(itemInfo: "View 2")
        let child_5 = TableChildExampleViewController(style: .plain, itemInfo: "TableView 3")
        let child_6 = ChildExampleViewController(itemInfo: "View 3")
        let child_7 = TableChildExampleViewController(style: .grouped, itemInfo: "TableView 4")
        let child_8 = ChildExampleViewController(itemInfo: "View 4")

        guard isReload else {
            return [child_1, child_2, child_3, child_4, child_5, child_6, child_7, child_8]
        }

        var childViewControllers = [child_1, child_2, child_3, child_4, child_5, child_6, child_7, child_8]

        for index in childViewControllers.indices {
            let nElements = childViewControllers.count - index
            let n = (Int(arc4random()) % nElements) + index
            if n != index {
                childViewControllers.swapAt(index, n)
            }
        }
        let nItems = 1 + (arc4random() % 8)
        return Array(childViewControllers.prefix(Int(nItems)))
    }

    @IBAction func reloadTapped(_ sender: AnyObject) {
        isReload = true
        reloadPagerTabStripView()
    }
}


================================================
FILE: Example/Example/Youtube/YoutubeExampleViewController.swift
================================================
//  YoutubeExampleViewController.swift
//  XLPagerTabStrip ( https://github.com/xmartlabs/XLPagerTabStrip )
//
//  Copyright (c) 2017 Xmartlabs ( http://xmartlabs.com )
//
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.

import Foundation
import XLPagerTabStrip

class YoutubeExampleViewController: BaseButtonBarPagerTabStripViewController<YoutubeIconCell> {

    let redColor = UIColor(red: 221/255.0, green: 0/255.0, blue: 19/255.0, alpha: 1.0)
    let unselectedIconColor = UIColor(red: 73/255.0, green: 8/255.0, blue: 10/255.0, alpha: 1.0)

    override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: Bundle?) {
        super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil)
    }

    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)

        buttonBarItemSpec = ButtonBarItemSpec.nibFile(nibName: "YoutubeIconCell", bundle: Bundle(for: YoutubeIconCell.self), width: { _ in
                return 55.0
        })
    }

    override func viewDidLoad() {
        // change selected bar color
        settings.style.buttonBarBackgroundColor = redColor
        settings.style.buttonBarItemBackgroundColor = .clear
        settings.style.selectedBarBackgroundColor = UIColor(red: 234/255.0, green: 234/255.0, blue: 234/255.0, alpha: 1.0)
        settings.style.selectedBarHeight = 4.0
        settings.style.buttonBarMinimumLineSpacing = 0
        settings.style.buttonBarItemTitleColor = .black
        settings.style.buttonBarItemsShouldFillAvailableWidth = true
        settings.style.buttonBarLeftContentInset = 0
        settings.style.buttonBarRightContentInset = 0

        changeCurrentIndexProgressive = { [weak self] (oldCell: YoutubeIconCell?, newCell: YoutubeIconCell?, progressPercentage: CGFloat, changeCurrentIndex: Bool, animated: Bool) -> Void in
            guard changeCurrentIndex == true else { return }
            oldCell?.iconImage.tintColor = self?.unselectedIconColor
            newCell?.iconImage.tintColor = .white
        }
        super.viewDidLoad()
        navigationController?.navigationBar.shadowImage = UIImage()
        navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default)
    }

    // MARK: - PagerTabStripDataSource

    override func viewControllers(for pagerTabStripController: PagerTabStripViewController) -> [UIViewController] {
        let child_1 = TableChildExampleViewController(style: .plain, itemInfo: IndicatorInfo(title: " HOME", image: UIImage(named: "home")))
        let child_2 = TableChildExampleViewController(style: .plain, itemInfo: IndicatorInfo(title: " TRENDING", image: UIImage(named: "trending")))
        let child_3 = ChildExampleViewController(itemInfo: IndicatorInfo(title: " ACCOUNT", image: UIImage(named: "profile")))
        return [child_1, child_2, child_3]
    }

    override func configure(cell: YoutubeIconCell, for indicatorInfo: IndicatorInfo) {
        cell.iconImage.image = indicatorInfo.image?.withRenderingMode(.alwaysTemplate)
    }

    override func updateIndicator(for viewController: PagerTabStripViewController, fromIndex: Int, toIndex: Int, withProgressPercentage progressPercentage: CGFloat, indexWasChanged: Bool) {
        super.updateIndicator(for: viewController, fromIndex: fromIndex, toIndex: toIndex, withProgressPercentage: progressPercentage, indexWasChanged: indexWasChanged)
        if indexWasChanged && toIndex > -1 && toIndex < viewControllers.count {
            let child = viewControllers[toIndex] as! IndicatorInfoProvider // swiftlint:disable:this force_cast
            UIView.performWithoutAnimation({ [weak self] () -> Void in
                guard let me = self else { return }
                me.navigationItem.leftBarButtonItem?.title =  child.indicatorInfo(for: me).title
            })
        }
    }

    // MARK: - Actions

    @IBAction func closeAction(_ sender: UIButton) {
        dismiss(animated: true, completion: nil)
    }
}


================================================
FILE: Example/Example/Youtube/YoutubeIconCell.swift
================================================
//  YoutubeIconCell.swift
//  XLPagerTabStrip ( https://github.com/xmartlabs/XLPagerTabStrip )
//
//  Copyright (c) 2017 Xmartlabs ( http://xmartlabs.com )
//
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.

import Foundation
import UIKit

class YoutubeIconCell: UICollectionViewCell {

    @IBOutlet weak var iconImage: UIImageView!

}


================================================
FILE: Example/Example/Youtube/YoutubeIconCell.xib
================================================
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="9531" systemVersion="15C50" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES">
    <dependencies>
        <deployment identifier="iOS"/>
        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="9529"/>
    </dependencies>
    <objects>
        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
        <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
        <collectionViewCell opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" id="2CI-9N-dP3" customClass="YoutubeIconCell" customModule="Example" customModuleProvider="target">
            <rect key="frame" x="0.0" y="0.0" width="74" height="50"/>
            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
            <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">
                <rect key="frame" x="0.0" y="0.0" width="74" height="50"/>
                <autoresizingMask key="autoresizingMask"/>
                <subviews>
                    <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="Tkn-VR-o25">
                        <rect key="frame" x="20" y="8" width="35" height="35"/>
                        <constraints>
                            <constraint firstAttribute="width" constant="35" id="EUF-rI-9Y8"/>
                            <constraint firstAttribute="height" constant="35" id="RoA-LT-AHV"/>
                        </constraints>
                    </imageView>
                </subviews>
                <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
            </view>
            <constraints>
                <constraint firstItem="Tkn-VR-o25" firstAttribute="centerX" secondItem="2CI-9N-dP3" secondAttribute="centerX" id="wav-eA-a2N"/>
                <constraint firstItem="Tkn-VR-o25" firstAttribute="centerY" secondItem="2CI-9N-dP3" secondAttribute="centerY" id="xV4-vo-sZc"/>
            </constraints>
            <size key="customSize" width="74" height="50"/>
            <connections>
                <outlet property="iconImage" destination="Tkn-VR-o25" id="7DO-mm-BJX"/>
            </connections>
            <point key="canvasLocation" x="317" y="376"/>
        </collectionViewCell>
    </objects>
</document>


================================================
FILE: Example/Example/YoutubeWithLabel/YoutubeIconWithLabelCell.swift
================================================
//  YoutubeIconWithLabelCell.swift
//  XLPagerTabStrip ( https://github.com/xmartlabs/XLPagerTabStrip )
//
//  Copyright (c) 2017 Xmartlabs ( http://xmartlabs.com )
//
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.

import Foundation
import UIKit

class YoutubeIconWithLabelCell: UICollectionViewCell {

    @IBOutlet weak var iconImage: UIImageView!
    @IBOutlet weak var iconLabel: UILabel!

}


================================================
FILE: Example/Example/YoutubeWithLabel/YoutubeIconWithLabelCell.xib
================================================
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="13529" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
    <device id="retina4_7" orientation="portrait">
        <adaptation id="fullscreen"/>
    </device>
    <dependencies>
        <deployment identifier="iOS"/>
        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="13527"/>
        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
    </dependencies>
    <objects>
        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
        <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
        <collectionViewCell opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" id="2CI-9N-dP3" customClass="YoutubeIconWithLabelCell" customModule="Example" customModuleProvider="target">
            <rect key="frame" x="0.0" y="0.0" width="74" height="70"/>
            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
            <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">
                <rect key="frame" x="0.0" y="0.0" width="74" height="70"/>
                <autoresizingMask key="autoresizingMask"/>
                <subviews>
                    <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="Tkn-VR-o25">
                        <rect key="frame" x="20" y="10" width="35" height="35"/>
                        <constraints>
                            <constraint firstAttribute="width" constant="35" id="EUF-rI-9Y8"/>
                            <constraint firstAttribute="height" constant="35" id="RoA-LT-AHV"/>
                        </constraints>
                    </imageView>
                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="rwk-fy-4KB">
                        <rect key="frame" x="0.0" y="45" width="74" height="20"/>
                        <constraints>
                            <constraint firstAttribute="height" constant="20" id="kWi-HY-P6M"/>
                        </constraints>
                        <fontDescription key="fontDescription" type="system" pointSize="10"/>
                        <nil key="textColor"/>
                        <nil key="highlightedColor"/>
                    </label>
                </subviews>
            </view>
            <constraints>
                <constraint firstItem="rwk-fy-4KB" firstAttribute="top" secondItem="Tkn-VR-o25" secondAttribute="bottom" id="A8G-Sk-d4C"/>
                <constraint firstItem="Tkn-VR-o25" firstAttribute="top" secondItem="2CI-9N-dP3" secondAttribute="top" constant="10" id="DaW-j3-w2g"/>
                <constraint firstItem="rwk-fy-4KB" firstAttribute="leading" secondItem="2CI-9N-dP3" secondAttribute="leading" id="HFm-qh-fCk"/>
                <constraint firstAttribute="bottom" secondItem="rwk-fy-4KB" secondAttribute="bottom" constant="5" id="Q0g-pb-bbf"/>
                <constraint firstAttribute="trailing" secondItem="rwk-fy-4KB" secondAttribute="trailing" id="YuE-x9-9EY"/>
                <constraint firstItem="Tkn-VR-o25" firstAttribute="centerX" secondItem="2CI-9N-dP3" secondAttribute="centerX" id="wav-eA-a2N"/>
            </constraints>
            <size key="customSize" width="74" height="50"/>
            <connections>
                <outlet property="iconImage" destination="Tkn-VR-o25" id="7DO-mm-BJX"/>
                <outlet property="iconLabel" destination="rwk-fy-4KB" id="76s-nG-weE"/>
            </connections>
            <point key="canvasLocation" x="317" y="376"/>
        </collectionViewCell>
    </objects>
</document>


================================================
FILE: Example/Example/YoutubeWithLabel/YoutubeWithLabelExampleViewController.swift
================================================
//  YoutubeWithLabelExampleViewController.swift
//  XLPagerTabStrip ( https://github.com/xmartlabs/XLPagerTabStrip )
//
//  Copyright (c) 2017 Xmartlabs ( http://xmartlabs.com )
//
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.

import Foundation
import XLPagerTabStrip

class YoutubeWithLabelExampleViewController: BaseButtonBarPagerTabStripViewController<YoutubeIconWithLabelCell> {

    let redColor = UIColor(red: 221/255.0, green: 0/255.0, blue: 19/255.0, alpha: 1.0)
    let unselectedIconColor = UIColor(red: 73/255.0, green: 8/255.0, blue: 10/255.0, alpha: 1.0)

    override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: Bundle?) {
        super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil)
    }

    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)

        buttonBarItemSpec = ButtonBarItemSpec.nibFile(nibName: "YoutubeIconWithLabelCell", bundle: Bundle(for: YoutubeIconWithLabelCell.self), width: { _ in
                return 70.0
        })
    }

    override func viewDidLoad() {
        // change selected bar color
        settings.style.buttonBarBackgroundColor = redColor
        settings.style.buttonBarItemBackgroundColor = .clear
        settings.style.selectedBarBackgroundColor = UIColor(red: 234/255.0, green: 234/255.0, blue: 234/255.0, alpha: 1.0)
        settings.style.selectedBarHeight = 4.0
        settings.style.buttonBarMinimumLineSpacing = 0
        settings.style.buttonBarItemTitleColor = .black
        settings.style.buttonBarItemsShouldFillAvailableWidth = true
        settings.style.buttonBarLeftContentInset = 0
        settings.style.buttonBarRightContentInset = 0

        changeCurrentIndexProgressive = { [weak self] (oldCell: YoutubeIconWithLabelCell?, newCell: YoutubeIconWithLabelCell?, progressPercentage: CGFloat, changeCurrentIndex: Bool, animated: Bool) -> Void in
            guard changeCurrentIndex == true else { return }
            oldCell?.iconImage.tintColor = self?.unselectedIconColor
            oldCell?.iconLabel.textColor = self?.unselectedIconColor
            newCell?.iconImage.tintColor = .white
            newCell?.iconLabel.textColor = .white
        }
        super.viewDidLoad()
        navigationController?.navigationBar.shadowImage = UIImage()
        navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default)
    }

    // MARK: - PagerTabStripDataSource

    override func viewControllers(for pagerTabStripController: PagerTabStripViewController) -> [UIViewController] {
        let child_1 = TableChildExampleViewController(style: .plain, itemInfo: IndicatorInfo(title: " HOME", image: UIImage(named: "home")))
        let child_2 = TableChildExampleViewController(style: .plain, itemInfo: IndicatorInfo(title: " TRENDING", image: UIImage(named: "trending")))
        let child_3 = ChildExampleViewController(itemInfo: IndicatorInfo(title: " ACCOUNT", image: UIImage(named: "profile")))
        return [child_1, child_2, child_3]
    }

    override func configure(cell: YoutubeIconWithLabelCell, for indicatorInfo: IndicatorInfo) {
        cell.iconImage.image = indicatorInfo.image?.withRenderingMode(.alwaysTemplate)
        cell.iconLabel.text = indicatorInfo.title?.trimmingCharacters(in: .whitespacesAndNewlines)
    }

    override func updateIndicator(for viewController: PagerTabStripViewController, fromIndex: Int, toIndex: Int, withProgressPercentage progressPercentage: CGFloat, indexWasChanged: Bool) {
        super.updateIndicator(for: viewController, fromIndex: fromIndex, toIndex: toIndex, withProgressPercentage: progressPercentage, indexWasChanged: indexWasChanged)
        if indexWasChanged && toIndex > -1 && toIndex < viewControllers.count {
            let child = viewControllers[toIndex] as! IndicatorInfoProvider // swiftlint:disable:this force_cast
            UIView.performWithoutAnimation({ [weak self] () -> Void in
                guard let me = self else { return }
                me.navigationItem.leftBarButtonItem?.title =  child.indicatorInfo(for: me).title
            })
        }
    }

    // MARK: - Actions

    @IBAction func closeAction(_ sender: UIButton) {
        dismiss(animated: true, completion: nil)
    }
}


================================================
FILE: Example/ExampleUITests/ExampleUITests.swift
================================================
//
//  ExampleUITests.swift
//  ExampleUITests
//
//  Copyright © 2016 Xmartlabs SRL. All rights reserved.
//

import XCTest

class ExampleUITests: XCTestCase {

    override func setUp() {
        super.setUp()

        // Put setup code here. This method is called before the invocation of each test method in the class.

        // In UI tests it is usually best to stop immediately when a failure occurs.
        continueAfterFailure = false
        // UI tests must launch the application that they test. Doing this in setup will make sure it happens for each test method.
        XCUIApplication().launch()

        // In UI tests it’s important to set the initial state - such as interface orientation - required for your tests before they run. The setUp method is a good place to do this.
    }

    override func tearDown() {
        // Put teardown code here. This method is called after the invocation of each test method in the class.
        super.tearDown()
    }

    func testExample() {
        // Use recording to get started writing UI tests.
        // Use XCTAssert and related functions to verify your tests produce the correct results.
    }

}


================================================
FILE: Example/ExampleUITests/Info.plist
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>CFBundleDevelopmentRegion</key>
	<string>en</string>
	<key>CFBundleExecutable</key>
	<string>$(EXECUTABLE_NAME)</string>
	<key>CFBundleIdentifier</key>
	<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
	<key>CFBundleInfoDictionaryVersion</key>
	<string>6.0</string>
	<key>CFBundleName</key>
	<string>$(PRODUCT_NAME)</string>
	<key>CFBundlePackageType</key>
	<string>BNDL</string>
	<key>CFBundleShortVersionString</key>
	<string>1.0</string>
	<key>CFBundleSignature</key>
	<string>????</string>
	<key>CFBundleVersion</key>
	<string>1</string>
</dict>
</plist>


================================================
FILE: Example.xcodeproj/project.pbxproj
================================================
// !$*UTF8*$!
{
	archiveVersion = 1;
	classes = {
	};
	objectVersion = 46;
	objects = {

/* Begin PBXBuildFile section */
		1F081A9E1FDABD1400B881EB /* YoutubeIconWithLabelCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F081A9B1FDABD1400B881EB /* YoutubeIconWithLabelCell.swift */; };
		1F081A9F1FDABD1400B881EB /* YoutubeIconWithLabelCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 1F081A9C1FDABD1400B881EB /* YoutubeIconWithLabelCell.xib */; };
		1F081AA01FDABD1400B881EB /* YoutubeWithLabelExampleViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F081A9D1FDABD1400B881EB /* YoutubeWithLabelExampleViewController.swift */; };
		285718181C568336004D7E7B /* DataProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 285718171C568336004D7E7B /* DataProvider.swift */; };
		285DA2881C569AA2000908CA /* ChildExampleViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 285DA2861C569AA2000908CA /* ChildExampleViewController.swift */; };
		285DA2891C569AA2000908CA /* TableChildExampleViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 285DA2871C569AA2000908CA /* TableChildExampleViewController.swift */; };
		285DA28C1C592154000908CA /* InstagramExampleViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 285DA28B1C592154000908CA /* InstagramExampleViewController.swift */; };
		285DA2901C59C587000908CA /* SpotifyExampleViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 285DA28F1C59C587000908CA /* SpotifyExampleViewController.swift */; };
		285DA2931C5A596B000908CA /* YoutubeExampleViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 285DA2921C5A596B000908CA /* YoutubeExampleViewController.swift */; };
		285DA2951C5A6A00000908CA /* YoutubeIconCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 285DA2941C5A6A00000908CA /* YoutubeIconCell.swift */; };
		285DA2971C5A6A36000908CA /* YoutubeIconCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 285DA2961C5A6A36000908CA /* YoutubeIconCell.xib */; };
		287D0A721C4B7877004566D6 /* ExampleUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 287D0A711C4B7877004566D6 /* ExampleUITests.swift */; };
		287D0A7D1C4B7B55004566D6 /* XLPagerTabStrip.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 287D0A7A1C4B7B26004566D6 /* XLPagerTabStrip.framework */; };
		287D0A7E1C4B7B55004566D6 /* XLPagerTabStrip.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 287D0A7A1C4B7B26004566D6 /* XLPagerTabStrip.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
		28F828D01C4B714D00330CF4 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 28F828CF1C4B714D00330CF4 /* AppDelegate.swift */; };
		CB2125DE1C52A80E002DAF42 /* TwitterExampleViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = CB2125DD1C52A80E002DAF42 /* TwitterExampleViewController.swift */; };
		CB3697BF1C5177B4001FC5F8 /* ButtonBarExampleViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = CB3697BE1C5177B4001FC5F8 /* ButtonBarExampleViewController.swift */; };
		CB71C6EB1C4EB964008EC806 /* SegmentedExampleViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = CB71C6EA1C4EB964008EC806 /* SegmentedExampleViewController.swift */; };
		CB71C6F31C4FDDCE008EC806 /* PostCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = CB71C6F21C4FDDCE008EC806 /* PostCell.swift */; };
		CB86ED801C4D6F0D00DA463B /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = CB86ED6F1C4D6F0D00DA463B /* Assets.xcassets */; };
		CB86ED811C4D6F0D00DA463B /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = CB86ED711C4D6F0D00DA463B /* LaunchScreen.storyboard */; };
		CB86ED941C4E89DD00DA463B /* PostCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = CB86ED931C4E89DD00DA463B /* PostCell.xib */; };
		CBA0A1FF1C50304500C5748C /* BarExampleViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = CBA0A1FE1C50304500C5748C /* BarExampleViewController.swift */; };
		CBA0A2021C5032E100C5748C /* Storyboard.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = CBA0A2011C5032E100C5748C /* Storyboard.storyboard */; };
		CBA0A2041C5033B400C5748C /* ReloadExampleViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = CBA0A2031C5033B400C5748C /* ReloadExampleViewController.swift */; };
		CBBD435F1C5274AE001A748E /* NavButtonBarExampleViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = CBBD435E1C5274AE001A748E /* NavButtonBarExampleViewController.swift */; };
/* End PBXBuildFile section */

/* Begin PBXContainerItemProxy section */
		287D0A791C4B7B26004566D6 /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = 287D0A741C4B7B26004566D6 /* XLPagerTabStrip.xcodeproj */;
			proxyType = 2;
			remoteGlobalIDString = 28F8287D1C494B2C00330CF4;
			remoteInfo = XLPagerTabStrip;
		};
		287D0A7B1C4B7B26004566D6 /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = 287D0A741C4B7B26004566D6 /* XLPagerTabStrip.xcodeproj */;
			proxyType = 2;
			remoteGlobalIDString = 28F828871C494B2C00330CF4;
			remoteInfo = XLPagerTabStripTests;
		};
		287D0A7F1C4B7B55004566D6 /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = 287D0A741C4B7B26004566D6 /* XLPagerTabStrip.xcodeproj */;
			proxyType = 1;
			remoteGlobalIDString = 28F8287C1C494B2C00330CF4;
			remoteInfo = XLPagerTabStrip;
		};
		28F828E11C4B714D00330CF4 /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = 28F828C41C4B714D00330CF4 /* Project object */;
			proxyType = 1;
			remoteGlobalIDString = 28F828CB1C4B714D00330CF4;
			remoteInfo = Example;
		};
/* End PBXContainerItemProxy section */

/* Begin PBXCopyFilesBuildPhase section */
		287D0A811C4B7B55004566D6 /* Embed Frameworks */ = {
			isa = PBXCopyFilesBuildPhase;
			buildActionMask = 2147483647;
			dstPath = "";
			dstSubfolderSpec = 10;
			files = (
				287D0A7E1C4B7B55004566D6 /* XLPagerTabStrip.framework in Embed Frameworks */,
			);
			name = "Embed Frameworks";
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXCopyFilesBuildPhase section */

/* Begin PBXFileReference section */
		1F081A9B1FDABD1400B881EB /* YoutubeIconWithLabelCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = YoutubeIconWithLabelCell.swift; sourceTree = "<group>"; };
		1F081A9C1FDABD1400B881EB /* YoutubeIconWithLabelCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = YoutubeIconWithLabelCell.xib; sourceTree = "<group>"; };
		1F081A9D1FDABD1400B881EB /* YoutubeWithLabelExampleViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = YoutubeWithLabelExampleViewController.swift; sourceTree = "<group>"; };
		285718171C568336004D7E7B /* DataProvider.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = DataProvider.swift; path = Example/Helpers/DataProvider.swift; sourceTree = "<group>"; };
		285DA2861C569AA2000908CA /* ChildExampleViewController.swift
Download .txt
gitextract__7a04txt/

├── .github/
│   ├── FUNDING.yml
│   ├── ISSUE_TEMPLATE.md
│   └── PULL_REQUEST_TEMPLATE.md
├── .gitignore
├── .swiftlint.yml
├── .travis.yml
├── CHANGELOG.md
├── CONTRIBUTING.md
├── Cartfile.private
├── Example/
│   ├── Example/
│   │   ├── AppDelegate.swift
│   │   ├── Assets.xcassets/
│   │   │   ├── AppIcon.appiconset/
│   │   │   │   └── Contents.json
│   │   │   ├── Contents.json
│   │   │   ├── Simpsons/
│   │   │   │   ├── Apu_Nahasapeemapetilon.imageset/
│   │   │   │   │   └── Contents.json
│   │   │   │   ├── Bart_Simpsons.imageset/
│   │   │   │   │   └── Contents.json
│   │   │   │   ├── Contents.json
│   │   │   │   ├── Homer_Simpsons.imageset/
│   │   │   │   │   └── Contents.json
│   │   │   │   ├── Lisa_Simpsons.imageset/
│   │   │   │   │   └── Contents.json
│   │   │   │   ├── Maggie_Simpsons.imageset/
│   │   │   │   │   └── Contents.json
│   │   │   │   ├── Marge_Simpsons.imageset/
│   │   │   │   │   └── Contents.json
│   │   │   │   ├── Montgomery_Burns.imageset/
│   │   │   │   │   └── Contents.json
│   │   │   │   ├── Ned_Flanders.imageset/
│   │   │   │   │   └── Contents.json
│   │   │   │   ├── Otto_Mann.imageset/
│   │   │   │   │   └── Contents.json
│   │   │   │   └── default-avatar.imageset/
│   │   │   │       └── Contents.json
│   │   │   ├── TabBar/
│   │   │   │   ├── Contents.json
│   │   │   │   ├── icon_bar.imageset/
│   │   │   │   │   └── Contents.json
│   │   │   │   ├── icon_button.imageset/
│   │   │   │   │   └── Contents.json
│   │   │   │   ├── icon_segmented.imageset/
│   │   │   │   │   └── Contents.json
│   │   │   │   └── icon_twitter.imageset/
│   │   │   │       └── Contents.json
│   │   │   └── Youtube/
│   │   │       ├── Contents.json
│   │   │       ├── home.imageset/
│   │   │       │   └── Contents.json
│   │   │       ├── more_options.imageset/
│   │   │       │   └── Contents.json
│   │   │       ├── profile.imageset/
│   │   │       │   └── Contents.json
│   │   │       ├── search.imageset/
│   │   │       │   └── Contents.json
│   │   │       └── trending.imageset/
│   │   │           └── Contents.json
│   │   ├── BarExampleViewController.swift
│   │   ├── Base.lproj/
│   │   │   ├── LaunchScreen.storyboard
│   │   │   └── Storyboard.storyboard
│   │   ├── ButtonBarExampleViewController.swift
│   │   ├── ChildControllers/
│   │   │   ├── ChildExampleViewController.swift
│   │   │   └── TableChildExampleViewController.swift
│   │   ├── Helpers/
│   │   │   ├── DataProvider.swift
│   │   │   ├── PostCell.swift
│   │   │   └── PostCell.xib
│   │   ├── Info.plist
│   │   ├── Instagram/
│   │   │   └── InstagramExampleViewController.swift
│   │   ├── NavButtonBarExampleViewController.swift
│   │   ├── ReloadExampleViewController.swift
│   │   ├── SegmentedExampleViewController.swift
│   │   ├── Spotify/
│   │   │   └── SpotifyExampleViewController.swift
│   │   ├── TwitterExampleViewController.swift
│   │   ├── Youtube/
│   │   │   ├── YoutubeExampleViewController.swift
│   │   │   ├── YoutubeIconCell.swift
│   │   │   └── YoutubeIconCell.xib
│   │   └── YoutubeWithLabel/
│   │       ├── YoutubeIconWithLabelCell.swift
│   │       ├── YoutubeIconWithLabelCell.xib
│   │       └── YoutubeWithLabelExampleViewController.swift
│   └── ExampleUITests/
│       ├── ExampleUITests.swift
│       └── Info.plist
├── Example.xcodeproj/
│   ├── project.pbxproj
│   └── project.xcworkspace/
│       └── contents.xcworkspacedata
├── LICENSE
├── Migration.md
├── ObjC/
│   ├── FXPageControl.h
│   └── FXPageControl.m
├── Package.resolved
├── Package.swift
├── Playground.playground/
│   ├── Contents.swift
│   └── contents.xcplayground
├── README.md
├── Sources/
│   └── XLPagerTabStrip/
│       ├── BarPagerTabStripViewController.swift
│       ├── BarView.swift
│       ├── BaseButtonBarPagerTabStripViewController.swift
│       ├── ButtonBarPagerTabStripViewController.swift
│       ├── ButtonBarView.swift
│       ├── ButtonBarViewCell.swift
│       ├── IndicatorInfo.swift
│       ├── PagerTabStripBehaviour.swift
│       ├── PagerTabStripError.swift
│       ├── PagerTabStripViewController.swift
│       ├── Resources/
│       │   └── ButtonCell.xib
│       ├── SegmentedPagerTabStripViewController.swift
│       ├── SwipeDirection.swift
│       ├── TwitterPagerTabStripViewController.swift
│       └── UIWindow+Pager.swift
├── Tests/
│   ├── Info.plist
│   └── XLPagerTabStripTests.swift
├── XLPagerTabStrip/
│   ├── Info.plist
│   └── XLPagerTabStrip.h
├── XLPagerTabStrip.podspec
├── XLPagerTabStrip.xcodeproj/
│   ├── project.pbxproj
│   ├── project.xcworkspace/
│   │   ├── contents.xcworkspacedata
│   │   └── xcshareddata/
│   │       └── IDEWorkspaceChecks.plist
│   └── xcshareddata/
│       └── xcschemes/
│           └── XLPagerTabStrip.xcscheme
└── XLPagerTabStrip.xcworkspace/
    ├── contents.xcworkspacedata
    └── xcshareddata/
        └── IDEWorkspaceChecks.plist
Condensed preview — 95 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (420K chars).
[
  {
    "path": ".github/FUNDING.yml",
    "chars": 813,
    "preview": "# These are supported funding model platforms\n\ngithub: xmartlabs # Replace with up to 4 GitHub Sponsors-enabled username"
  },
  {
    "path": ".github/ISSUE_TEMPLATE.md",
    "chars": 1073,
    "preview": "Before submitting issues ...\n\n- Make sure you are using XLPagerTabStrip [latest release](https://github.com/xmartlabs/XL"
  },
  {
    "path": ".github/PULL_REQUEST_TEMPLATE.md",
    "chars": 0,
    "preview": ""
  },
  {
    "path": ".gitignore",
    "chars": 984,
    "preview": "## OS X Finder\n.DS_Store\n\n## Build generated\nbuild/\nDerivedData\n\n## Various settings\n*.pbxuser\n!default.pbxuser\n*.mode1v"
  },
  {
    "path": ".swiftlint.yml",
    "chars": 1444,
    "preview": "disabled_rules: # rule identifiers to exclude from running\n#  - colon\n#  - comma\n#  - control_statement\n  - line_length\n"
  },
  {
    "path": ".travis.yml",
    "chars": 640,
    "preview": "language: objective-c\nosx_image: xcode10.2\nbranches:\n  only:\n    - master\nenv:\n  - DESTINATION=\"OS=12.1,name=iPhone XS\" "
  },
  {
    "path": "CHANGELOG.md",
    "chars": 3641,
    "preview": "# Change Log\nAll notable changes to XLPagerTabStrip will be documented in this file.\n\n### [9.1.0](https://github.com/xma"
  },
  {
    "path": "CONTRIBUTING.md",
    "chars": 4585,
    "preview": "Contributing Guidelines\n--------------------------------------------------\n\nThis document provides general guidelines ab"
  },
  {
    "path": "Cartfile.private",
    "chars": 43,
    "preview": "github \"Quick/Quick\"\ngithub \"Quick/Nimble\"\n"
  },
  {
    "path": "Example/Example/AppDelegate.swift",
    "chars": 2304,
    "preview": "//\n//  AppDelegate.swift\n//  Example\n//\n//  Copyright © 2016 Xmartlabs SRL. All rights reserved.\n//\n\nimport UIKit\n\n@UIAp"
  },
  {
    "path": "Example/Example/Assets.xcassets/AppIcon.appiconset/Contents.json",
    "chars": 753,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"iphone\",\n      \"size\" : \"20x20\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\""
  },
  {
    "path": "Example/Example/Assets.xcassets/Contents.json",
    "chars": 62,
    "preview": "{\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "Example/Example/Assets.xcassets/Simpsons/Apu_Nahasapeemapetilon.imageset/Contents.json",
    "chars": 319,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"Apu_Nahasapeemapetilon.png\",\n      \"scale\" : \"1x"
  },
  {
    "path": "Example/Example/Assets.xcassets/Simpsons/Bart_Simpsons.imageset/Contents.json",
    "chars": 310,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"Bart_Simpsons.png\",\n      \"scale\" : \"1x\"\n    },\n"
  },
  {
    "path": "Example/Example/Assets.xcassets/Simpsons/Contents.json",
    "chars": 62,
    "preview": "{\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "Example/Example/Assets.xcassets/Simpsons/Homer_Simpsons.imageset/Contents.json",
    "chars": 311,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"Homer_Simpsons.png\",\n      \"scale\" : \"1x\"\n    },"
  },
  {
    "path": "Example/Example/Assets.xcassets/Simpsons/Lisa_Simpsons.imageset/Contents.json",
    "chars": 310,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"Lisa_Simpsons.png\",\n      \"scale\" : \"1x\"\n    },\n"
  },
  {
    "path": "Example/Example/Assets.xcassets/Simpsons/Maggie_Simpsons.imageset/Contents.json",
    "chars": 312,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"Maggie_Simpsons.png\",\n      \"scale\" : \"1x\"\n    }"
  },
  {
    "path": "Example/Example/Assets.xcassets/Simpsons/Marge_Simpsons.imageset/Contents.json",
    "chars": 311,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"Marge_Simpsons.png\",\n      \"scale\" : \"1x\"\n    },"
  },
  {
    "path": "Example/Example/Assets.xcassets/Simpsons/Montgomery_Burns.imageset/Contents.json",
    "chars": 313,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"Montgomery_Burns.png\",\n      \"scale\" : \"1x\"\n    "
  },
  {
    "path": "Example/Example/Assets.xcassets/Simpsons/Ned_Flanders.imageset/Contents.json",
    "chars": 309,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"Ned_Flanders.png\",\n      \"scale\" : \"1x\"\n    },\n "
  },
  {
    "path": "Example/Example/Assets.xcassets/Simpsons/Otto_Mann.imageset/Contents.json",
    "chars": 306,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"Otto_Mann.png\",\n      \"scale\" : \"1x\"\n    },\n    "
  },
  {
    "path": "Example/Example/Assets.xcassets/Simpsons/default-avatar.imageset/Contents.json",
    "chars": 314,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n     "
  },
  {
    "path": "Example/Example/Assets.xcassets/TabBar/Contents.json",
    "chars": 62,
    "preview": "{\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "Example/Example/Assets.xcassets/TabBar/icon_bar.imageset/Contents.json",
    "chars": 337,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"a_bar.png\",\n      \"scale\" : \"1x\"\n    },\n    {\n  "
  },
  {
    "path": "Example/Example/Assets.xcassets/TabBar/icon_button.imageset/Contents.json",
    "chars": 343,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"a_button.png\",\n      \"scale\" : \"1x\"\n    },\n    {"
  },
  {
    "path": "Example/Example/Assets.xcassets/TabBar/icon_segmented.imageset/Contents.json",
    "chars": 349,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"a_segmented.png\",\n      \"scale\" : \"1x\"\n    },\n  "
  },
  {
    "path": "Example/Example/Assets.xcassets/TabBar/icon_twitter.imageset/Contents.json",
    "chars": 345,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"a_twitter.png\",\n      \"scale\" : \"1x\"\n    },\n    "
  },
  {
    "path": "Example/Example/Assets.xcassets/Youtube/Contents.json",
    "chars": 62,
    "preview": "{\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "Example/Example/Assets.xcassets/Youtube/home.imageset/Contents.json",
    "chars": 304,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n     "
  },
  {
    "path": "Example/Example/Assets.xcassets/Youtube/more_options.imageset/Contents.json",
    "chars": 354,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n     "
  },
  {
    "path": "Example/Example/Assets.xcassets/Youtube/profile.imageset/Contents.json",
    "chars": 307,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n     "
  },
  {
    "path": "Example/Example/Assets.xcassets/Youtube/search.imageset/Contents.json",
    "chars": 344,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n     "
  },
  {
    "path": "Example/Example/Assets.xcassets/Youtube/trending.imageset/Contents.json",
    "chars": 308,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n     "
  },
  {
    "path": "Example/Example/BarExampleViewController.swift",
    "chars": 3140,
    "preview": "//  BarExampleViewController.swift\n//  XLPagerTabStrip ( https://github.com/xmartlabs/XLPagerTabStrip )\n//\n//  Copyright"
  },
  {
    "path": "Example/Example/Base.lproj/LaunchScreen.storyboard",
    "chars": 1774,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.Storyboard"
  },
  {
    "path": "Example/Example/Base.lproj/Storyboard.storyboard",
    "chars": 87896,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB\" version=\"3"
  },
  {
    "path": "Example/Example/ButtonBarExampleViewController.swift",
    "chars": 3495,
    "preview": "//  ButtonBarExampleViewController.swift\n//  XLPagerTabStrip ( https://github.com/xmartlabs/XLPagerTabStrip )\n//\n//  Cop"
  },
  {
    "path": "Example/Example/ChildControllers/ChildExampleViewController.swift",
    "chars": 2414,
    "preview": "//  ChildExampleViewController.swift\n//  XLPagerTabStrip ( https://github.com/xmartlabs/XLPagerTabStrip )\n//\n//  Copyrig"
  },
  {
    "path": "Example/Example/ChildControllers/TableChildExampleViewController.swift",
    "chars": 3308,
    "preview": "//  TableChildExampleViewController.swift\n//  XLPagerTabStrip ( https://github.com/xmartlabs/XLPagerTabStrip )\n//\n//  Co"
  },
  {
    "path": "Example/Example/Helpers/DataProvider.swift",
    "chars": 7371,
    "preview": "//  PostCell.swift\n//  XLPagerTabStrip ( https://github.com/xmartlabs/XLPagerTabStrip )\n//\n//  Copyright (c) 2017 Xmartl"
  },
  {
    "path": "Example/Example/Helpers/PostCell.swift",
    "chars": 2232,
    "preview": "//  PostCell.swift\n//  XLPagerTabStrip ( https://github.com/xmartlabs/XLPagerTabStrip )\n//\n//  Copyright (c) 2017 Xmartl"
  },
  {
    "path": "Example/Example/Helpers/PostCell.xib",
    "chars": 5757,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.XIB\" version=\"3.0\" toolsVe"
  },
  {
    "path": "Example/Example/Info.plist",
    "chars": 1275,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "Example/Example/Instagram/InstagramExampleViewController.swift",
    "chars": 3085,
    "preview": "//  SegmentedExampleViewController.swift\n//  XLPagerTabStrip ( https://github.com/xmartlabs/XLPagerTabStrip )\n//\n//  Cop"
  },
  {
    "path": "Example/Example/NavButtonBarExampleViewController.swift",
    "chars": 4687,
    "preview": "//  NavButtonBarExampleViewController.swift\n//  XLPagerTabStrip ( https://github.com/xmartlabs/XLPagerTabStrip )\n//\n//  "
  },
  {
    "path": "Example/Example/ReloadExampleViewController.swift",
    "chars": 3180,
    "preview": "//  ReloadExampleViewController.swift\n//  XLPagerTabStrip ( https://github.com/xmartlabs/XLPagerTabStrip )\n//\n//  Copyri"
  },
  {
    "path": "Example/Example/SegmentedExampleViewController.swift",
    "chars": 2863,
    "preview": "//  SegmentedExampleViewController.swift\n//  XLPagerTabStrip ( https://github.com/xmartlabs/XLPagerTabStrip )\n//\n//  Cop"
  },
  {
    "path": "Example/Example/Spotify/SpotifyExampleViewController.swift",
    "chars": 3463,
    "preview": "//  SpotifyExampleViewController.swift\n//  XLPagerTabStrip ( https://github.com/xmartlabs/XLPagerTabStrip )\n//\n//  Copyr"
  },
  {
    "path": "Example/Example/TwitterExampleViewController.swift",
    "chars": 2917,
    "preview": "//  TwitterExampleViewController.swift\n//  XLPagerTabStrip ( https://github.com/xmartlabs/XLPagerTabStrip )\n//\n//  Copyr"
  },
  {
    "path": "Example/Example/Youtube/YoutubeExampleViewController.swift",
    "chars": 4959,
    "preview": "//  YoutubeExampleViewController.swift\n//  XLPagerTabStrip ( https://github.com/xmartlabs/XLPagerTabStrip )\n//\n//  Copyr"
  },
  {
    "path": "Example/Example/Youtube/YoutubeIconCell.swift",
    "chars": 1364,
    "preview": "//  YoutubeIconCell.swift\n//  XLPagerTabStrip ( https://github.com/xmartlabs/XLPagerTabStrip )\n//\n//  Copyright (c) 2017"
  },
  {
    "path": "Example/Example/Youtube/YoutubeIconCell.xib",
    "chars": 2700,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.XIB\" versi"
  },
  {
    "path": "Example/Example/YoutubeWithLabel/YoutubeIconWithLabelCell.swift",
    "chars": 1425,
    "preview": "//  YoutubeIconWithLabelCell.swift\n//  XLPagerTabStrip ( https://github.com/xmartlabs/XLPagerTabStrip )\n//\n//  Copyright"
  },
  {
    "path": "Example/Example/YoutubeWithLabel/YoutubeIconWithLabelCell.xib",
    "chars": 4237,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.XIB\" version=\"3.0\" toolsVe"
  },
  {
    "path": "Example/Example/YoutubeWithLabel/YoutubeWithLabelExampleViewController.swift",
    "chars": 5249,
    "preview": "//  YoutubeWithLabelExampleViewController.swift\n//  XLPagerTabStrip ( https://github.com/xmartlabs/XLPagerTabStrip )\n//\n"
  },
  {
    "path": "Example/ExampleUITests/ExampleUITests.swift",
    "chars": 1168,
    "preview": "//\n//  ExampleUITests.swift\n//  ExampleUITests\n//\n//  Copyright © 2016 Xmartlabs SRL. All rights reserved.\n//\n\nimport XC"
  },
  {
    "path": "Example/ExampleUITests/Info.plist",
    "chars": 733,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "Example.xcodeproj/project.pbxproj",
    "chars": 32036,
    "preview": "// !$*UTF8*$!\n{\n\tarchiveVersion = 1;\n\tclasses = {\n\t};\n\tobjectVersion = 46;\n\tobjects = {\n\n/* Begin PBXBuildFile section *"
  },
  {
    "path": "Example.xcodeproj/project.xcworkspace/contents.xcworkspacedata",
    "chars": 152,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Workspace\n   version = \"1.0\">\n   <FileRef\n      location = \"self:Example.xcodepr"
  },
  {
    "path": "LICENSE",
    "chars": 1080,
    "preview": "The MIT License (MIT)\n\nCopyright (c) 2019 Xmartlabs SRL\n\nPermission is hereby granted, free of charge, to any person obt"
  },
  {
    "path": "Migration.md",
    "chars": 2667,
    "preview": "## How to migrate from Swift 2 to Swift 3\n\nTo migrate from Swift 2 to Swift 3 you have to change the naming of some of t"
  },
  {
    "path": "ObjC/FXPageControl.h",
    "chars": 4299,
    "preview": "//\n//  FXPageControl.h\n//\n//  Version 1.6\n//\n//  Created by Nick Lockwood on 07/01/2010.\n//  Copyright 2010 Charcoal Des"
  },
  {
    "path": "ObjC/FXPageControl.m",
    "chars": 16074,
    "preview": "//\n//  FXPageControl.m\n//\n//  Version 1.6\n//\n//  Created by Nick Lockwood on 07/01/2010.\n//  Copyright 2010 Charcoal Des"
  },
  {
    "path": "Package.resolved",
    "chars": 338,
    "preview": "{\n  \"object\": {\n    \"pins\": [\n      {\n        \"package\": \"FXPageControl\",\n        \"repositoryURL\": \"https://github.com/n"
  },
  {
    "path": "Package.swift",
    "chars": 863,
    "preview": "// swift-tools-version: 5.4\n// The swift-tools-version declares the minimum version of Swift required to build this pack"
  },
  {
    "path": "Playground.playground/Contents.swift",
    "chars": 241,
    "preview": "//\n//  Playground.playground\n//  XLPagerTabStrip\n//\n//  Copyright © 2016 Xmartlabs SRL. All rights reserved.\n//\n\n//: Pla"
  },
  {
    "path": "Playground.playground/contents.xcplayground",
    "chars": 165,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<playground version='5.0' target-platform='ios'>\n    <timeline f"
  },
  {
    "path": "README.md",
    "chars": 14974,
    "preview": "![XLPagerTabStripView](https://raw.githubusercontent.com/xmartlabs/XLPagerTabStrip/master/XLPagerTabTrip.png)\n\n<p align="
  },
  {
    "path": "Sources/XLPagerTabStrip/BarPagerTabStripViewController.swift",
    "chars": 3951,
    "preview": "//  BarPagerTabStripViewController.swift\n//  XLPagerTabStrip ( https://github.com/xmartlabs/XLPagerTabStrip )\n//\n//  Cop"
  },
  {
    "path": "Sources/XLPagerTabStrip/BarView.swift",
    "chars": 3380,
    "preview": "//  BarView.swift\n//  XLPagerTabStrip ( https://github.com/xmartlabs/XLPagerTabStrip )\n//\n//  Copyright (c) 2017 Xmartla"
  },
  {
    "path": "Sources/XLPagerTabStrip/BaseButtonBarPagerTabStripViewController.swift",
    "chars": 18403,
    "preview": "//  BaseButtonBarPagerTabStripViewController.swift\n//  XLPagerTabStrip ( https://github.com/xmartlabs/XLPagerTabStrip )\n"
  },
  {
    "path": "Sources/XLPagerTabStrip/ButtonBarPagerTabStripViewController.swift",
    "chars": 20259,
    "preview": "//  ButtonBarPagerTabStripViewController.swift\n//  XLPagerTabStrip ( https://github.com/xmartlabs/XLPagerTabStrip )\n//\n/"
  },
  {
    "path": "Sources/XLPagerTabStrip/ButtonBarView.swift",
    "chars": 8205,
    "preview": "//  ButtonBarView.swift\n//  XLPagerTabStrip ( https://github.com/xmartlabs/XLPagerTabStrip )\n//\n//  Copyright (c) 2017 X"
  },
  {
    "path": "Sources/XLPagerTabStrip/ButtonBarViewCell.swift",
    "chars": 1956,
    "preview": "//  ButtonBarViewCell.swift\n//  XLPagerTabStrip ( https://github.com/xmartlabs/XLPagerTabStrip )\n//\n//  Copyright (c) 20"
  },
  {
    "path": "Sources/XLPagerTabStrip/IndicatorInfo.swift",
    "chars": 2842,
    "preview": "//  IndicatorInfo.swift\n//  XLPagerTabStrip ( https://github.com/xmartlabs/XLPagerTabStrip )\n//\n//  Copyright (c) 2017 X"
  },
  {
    "path": "Sources/XLPagerTabStrip/PagerTabStripBehaviour.swift",
    "chars": 2179,
    "preview": "//  PagerTabStripOptions.swift\n//  XLPagerTabStrip ( https://github.com/xmartlabs/XLPagerTabStrip )\n//\n//  Copyright (c)"
  },
  {
    "path": "Sources/XLPagerTabStrip/PagerTabStripError.swift",
    "chars": 1336,
    "preview": "//  PagerTabStripError.swift\n//  XLPagerTabStrip ( https://github.com/xmartlabs/XLPagerTabStrip )\n//\n//  Copyright (c) 2"
  },
  {
    "path": "Sources/XLPagerTabStrip/PagerTabStripViewController.swift",
    "chars": 16642,
    "preview": "//  PagerTabStripViewController.swift\n//  XLPagerTabStrip ( https://github.com/xmartlabs/XLPagerTabStrip )\n//\n//  Copyri"
  },
  {
    "path": "Sources/XLPagerTabStrip/Resources/ButtonCell.xib",
    "chars": 3955,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.XIB\" version=\"3.0\" toolsVe"
  },
  {
    "path": "Sources/XLPagerTabStrip/SegmentedPagerTabStripViewController.swift",
    "chars": 4494,
    "preview": "//  SegmentedPagerTabStripViewController.swift\n//  XLPagerTabStrip ( https://github.com/xmartlabs/XLPagerTabStrip )\n//\n/"
  },
  {
    "path": "Sources/XLPagerTabStrip/SwipeDirection.swift",
    "chars": 1327,
    "preview": "//  SwipeDirection.swift\n//  XLPagerTabStrip ( https://github.com/xmartlabs/XLPagerTabStrip )\n//\n//  Copyright (c) 2017 "
  },
  {
    "path": "Sources/XLPagerTabStrip/TwitterPagerTabStripViewController.swift",
    "chars": 10165,
    "preview": "//  TwitterPagerTabStripViewController.swift\n//  XLPagerTabStrip ( https://github.com/xmartlabs/XLPagerTabStrip )\n//\n// "
  },
  {
    "path": "Sources/XLPagerTabStrip/UIWindow+Pager.swift",
    "chars": 2018,
    "preview": "//  TwitterPagerTabStripViewController.swift\n//  XLPagerTabStrip ( https://github.com/xmartlabs/XLPagerTabStrip )\n//\n// "
  },
  {
    "path": "Tests/Info.plist",
    "chars": 733,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "Tests/XLPagerTabStripTests.swift",
    "chars": 943,
    "preview": "//\n//  XLPagerTabStripTests.swift\n//  XLPagerTabStripTests\n//\n//  Copyright © 2016 Xmartlabs SRL. All rights reserved.\n/"
  },
  {
    "path": "XLPagerTabStrip/Info.plist",
    "chars": 808,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "XLPagerTabStrip/XLPagerTabStrip.h",
    "chars": 526,
    "preview": "//\n//  XLPagerTabStrip.h\n//  XLPagerTabStrip\n//\n//  Copyright © 2016 Xmartlabs SRL. All rights reserved.\n//\n\n#import <UI"
  },
  {
    "path": "XLPagerTabStrip.podspec",
    "chars": 790,
    "preview": "Pod::Spec.new do |s|\n  s.name             = \"XLPagerTabStrip\"\n  s.version          = \"9.1.0\"\n  s.summary          = \"And"
  },
  {
    "path": "XLPagerTabStrip.xcodeproj/project.pbxproj",
    "chars": 26175,
    "preview": "// !$*UTF8*$!\n{\n\tarchiveVersion = 1;\n\tclasses = {\n\t};\n\tobjectVersion = 48;\n\tobjects = {\n\n/* Begin PBXBuildFile section *"
  },
  {
    "path": "XLPagerTabStrip.xcodeproj/project.xcworkspace/contents.xcworkspacedata",
    "chars": 160,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Workspace\n   version = \"1.0\">\n   <FileRef\n      location = \"self:XLPagerTabStrip"
  },
  {
    "path": "XLPagerTabStrip.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist",
    "chars": 238,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "XLPagerTabStrip.xcodeproj/xcshareddata/xcschemes/XLPagerTabStrip.xcscheme",
    "chars": 3657,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Scheme\n   LastUpgradeVersion = \"1400\"\n   version = \"1.3\">\n   <BuildAction\n      "
  },
  {
    "path": "XLPagerTabStrip.xcworkspace/contents.xcworkspacedata",
    "chars": 235,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Workspace\n   version = \"1.0\">\n   <FileRef\n      location = \"container:XLPagerTab"
  },
  {
    "path": "XLPagerTabStrip.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist",
    "chars": 238,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  }
]

About this extraction

This page contains the full source code of the xmartlabs/XLPagerTabStrip GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 95 files (382.6 KB), approximately 100.6k tokens. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!