├── .gitignore ├── .travis.yml ├── Example ├── Podfile ├── Podfile.lock ├── Pods │ ├── Headers │ │ └── Private │ │ │ └── SCNavigationControlCenter │ │ │ ├── SCNavigationControlCenter.h │ │ │ ├── UIViewExt.h │ │ │ └── iCarousel.h │ ├── Local Podspecs │ │ └── SCNavigationControlCenter.podspec.json │ ├── Manifest.lock │ ├── Pods.xcodeproj │ │ ├── project.pbxproj │ │ └── xcshareddata │ │ │ └── xcschemes │ │ │ └── SCNavigationControlCenter.xcscheme │ └── Target Support Files │ │ ├── Pods-SCNavigationControlCenter_Example │ │ ├── Info.plist │ │ ├── Pods-SCNavigationControlCenter_Example-acknowledgements.markdown │ │ ├── Pods-SCNavigationControlCenter_Example-acknowledgements.plist │ │ ├── Pods-SCNavigationControlCenter_Example-dummy.m │ │ ├── Pods-SCNavigationControlCenter_Example-frameworks.sh │ │ ├── Pods-SCNavigationControlCenter_Example-resources.sh │ │ ├── Pods-SCNavigationControlCenter_Example-umbrella.h │ │ ├── Pods-SCNavigationControlCenter_Example.debug.xcconfig │ │ ├── Pods-SCNavigationControlCenter_Example.modulemap │ │ └── Pods-SCNavigationControlCenter_Example.release.xcconfig │ │ ├── Pods-SCNavigationControlCenter_Tests │ │ ├── Info.plist │ │ ├── Pods-SCNavigationControlCenter_Tests-acknowledgements.markdown │ │ ├── Pods-SCNavigationControlCenter_Tests-acknowledgements.plist │ │ ├── Pods-SCNavigationControlCenter_Tests-dummy.m │ │ ├── Pods-SCNavigationControlCenter_Tests-frameworks.sh │ │ ├── Pods-SCNavigationControlCenter_Tests-resources.sh │ │ ├── Pods-SCNavigationControlCenter_Tests-umbrella.h │ │ ├── Pods-SCNavigationControlCenter_Tests.debug.xcconfig │ │ ├── Pods-SCNavigationControlCenter_Tests.modulemap │ │ └── Pods-SCNavigationControlCenter_Tests.release.xcconfig │ │ └── SCNavigationControlCenter │ │ ├── Info.plist │ │ ├── SCNavigationControlCenter-dummy.m │ │ ├── SCNavigationControlCenter-prefix.pch │ │ ├── SCNavigationControlCenter-umbrella.h │ │ ├── SCNavigationControlCenter.modulemap │ │ └── SCNavigationControlCenter.xcconfig ├── SCNavigationControlCenter.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ └── contents.xcworkspacedata │ └── xcshareddata │ │ └── xcschemes │ │ └── SCNavigationControlCenter-Example.xcscheme ├── SCNavigationControlCenter.xcworkspace │ └── contents.xcworkspacedata ├── SCNavigationControlCenter │ ├── 1.jpg │ ├── 2.jpg │ ├── 3.jpg │ ├── 4.jpg │ ├── 5.jpg │ ├── 6.jpg │ ├── 7.jpg │ ├── Images.xcassets │ │ ├── AppIcon.appiconset │ │ │ ├── Contents.json │ │ │ ├── Icon-60@2x.png │ │ │ ├── Icon-60@3x.png │ │ │ ├── Icon-76.png │ │ │ ├── Icon-76@2x.png │ │ │ ├── Icon-Small.png │ │ │ ├── Icon-Small@2x-1.png │ │ │ ├── Icon-Small@2x.png │ │ │ ├── Icon-Small@3x.png │ │ │ ├── Icon-Spotlight-40.png │ │ │ ├── Icon-Spotlight-40@2x-1.png │ │ │ ├── Icon-Spotlight-40@2x.png │ │ │ └── Icon-Spotlight-40@3x.png │ │ └── LaunchImage.launchimage │ │ │ └── Contents.json │ ├── Main.storyboard │ ├── PictureViewController.h │ ├── PictureViewController.m │ ├── SCAppDelegate.h │ ├── SCAppDelegate.m │ ├── SCNavigationControlCenter-Info.plist │ ├── SCNavigationControlCenter-Prefix.pch │ ├── SCNavigationController.h │ ├── SCNavigationController.m │ ├── TabAViewController.h │ ├── TabAViewController.m │ ├── TabBViewController.h │ ├── TabBViewController.m │ ├── en.lproj │ │ └── InfoPlist.strings │ └── main.m └── Tests │ ├── Tests-Info.plist │ ├── Tests-Prefix.pch │ ├── Tests.m │ └── en.lproj │ └── InfoPlist.strings ├── LICENSE ├── Pod ├── Assets │ └── .gitkeep └── Classes │ ├── .gitkeep │ ├── SCNavigationControlCenter.h │ ├── SCNavigationControlCenter.m │ ├── UIViewExt.h │ ├── UIViewExt.m │ ├── iCarousel.h │ └── iCarousel.m ├── Preview ├── preview.gif └── preview.png ├── README.md ├── SCNavigationControlCenter.podspec └── _Pods.xcodeproj /.gitignore: -------------------------------------------------------------------------------- 1 | # OS X 2 | .DS_Store 3 | 4 | # Xcode 5 | # 6 | build/ 7 | *.pbxuser 8 | !default.pbxuser 9 | *.mode1v3 10 | !default.mode1v3 11 | *.mode2v3 12 | !default.mode2v3 13 | *.perspectivev3 14 | !default.perspectivev3 15 | xcuserdata 16 | *.xccheckout 17 | profile 18 | *.moved-aside 19 | DerivedData 20 | *.hmap 21 | *.ipa 22 | 23 | # Bundler 24 | .bundle 25 | 26 | Carthage 27 | # We recommend against adding the Pods directory to your .gitignore. However 28 | # you should judge for yourself, the pros and cons are mentioned at: 29 | # http://guides.cocoapods.org/using/using-cocoapods.html#should-i-ignore-the-pods-directory-in-source-control 30 | # 31 | # Note: if you ignore the Pods directory, make sure to uncomment 32 | # `pod install` in .travis.yml 33 | # 34 | # Pods/ 35 | *.xcuserstate 36 | 37 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | # references: 2 | # * http://www.objc.io/issue-6/travis-ci.html 3 | # * https://github.com/supermarin/xcpretty#usage 4 | 5 | language: objective-c 6 | # cache: cocoapods 7 | # podfile: Example/Podfile 8 | # before_install: 9 | # - gem install cocoapods # Since Travis is not always on latest version 10 | # - pod install --project-directory=Example 11 | script: 12 | - set -o pipefail && xcodebuild test -workspace Example/SCNavigationControlCenter.xcworkspace -scheme SCNavigationControlCenter-Example -sdk iphonesimulator ONLY_ACTIVE_ARCH=NO | xcpretty 13 | - pod lib lint 14 | -------------------------------------------------------------------------------- /Example/Podfile: -------------------------------------------------------------------------------- 1 | source 'https://github.com/CocoaPods/Specs.git' 2 | use_frameworks! 3 | 4 | target 'SCNavigationControlCenter_Example', :exclusive => true do 5 | pod "SCNavigationControlCenter", :path => "../" 6 | end 7 | 8 | target 'SCNavigationControlCenter_Tests', :exclusive => true do 9 | pod "SCNavigationControlCenter", :path => "../" 10 | 11 | 12 | end 13 | -------------------------------------------------------------------------------- /Example/Podfile.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - SCNavigationControlCenter (0.1.0) 3 | 4 | DEPENDENCIES: 5 | - SCNavigationControlCenter (from `../`) 6 | 7 | EXTERNAL SOURCES: 8 | SCNavigationControlCenter: 9 | :path: ../ 10 | 11 | SPEC CHECKSUMS: 12 | SCNavigationControlCenter: 36bc61ea1201f9e6009ff21ceaeed70d3e9ed118 13 | 14 | COCOAPODS: 0.39.0 15 | -------------------------------------------------------------------------------- /Example/Pods/Headers/Private/SCNavigationControlCenter/SCNavigationControlCenter.h: -------------------------------------------------------------------------------- 1 | ../../../../../Pod/Classes/SCNavigationControlCenter.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Private/SCNavigationControlCenter/UIViewExt.h: -------------------------------------------------------------------------------- 1 | ../../../../../Pod/Classes/UIViewExt.h -------------------------------------------------------------------------------- /Example/Pods/Headers/Private/SCNavigationControlCenter/iCarousel.h: -------------------------------------------------------------------------------- 1 | ../../../../../Pod/Classes/iCarousel.h -------------------------------------------------------------------------------- /Example/Pods/Local Podspecs/SCNavigationControlCenter.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "SCNavigationControlCenter", 3 | "version": "0.1.0", 4 | "summary": "An advanced navigation controll center.", 5 | "description": "An advanced navigation controll center similar to iOS 9 Multi-tasking.", 6 | "homepage": "https://github.com/SergioChan/SCNavigationControlCenter", 7 | "license": "MIT", 8 | "authors": { 9 | "Sergio Chan": "yuheng9211@qq.com" 10 | }, 11 | "source": { 12 | "git": "https://github.com/SergioChan/SCNavigationControlCenter.git", 13 | "tag": "0.1.0" 14 | }, 15 | "platforms": { 16 | "ios": "8.0" 17 | }, 18 | "requires_arc": true, 19 | "source_files": "Pod/Classes/**/*", 20 | "resource_bundles": { 21 | "SCNavigationControlCenter": [ 22 | "Pod/Assets/*.png" 23 | ] 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /Example/Pods/Manifest.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - SCNavigationControlCenter (0.1.0) 3 | 4 | DEPENDENCIES: 5 | - SCNavigationControlCenter (from `../`) 6 | 7 | EXTERNAL SOURCES: 8 | SCNavigationControlCenter: 9 | :path: ../ 10 | 11 | SPEC CHECKSUMS: 12 | SCNavigationControlCenter: 36bc61ea1201f9e6009ff21ceaeed70d3e9ed118 13 | 14 | COCOAPODS: 0.39.0 15 | -------------------------------------------------------------------------------- /Example/Pods/Pods.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 46; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | 07B159265FCEC18A2209EEA71CE6EA04 /* SCNavigationControlCenter.m in Sources */ = {isa = PBXBuildFile; fileRef = 04F220E7870CDB2A61D133632BAAFCCC /* SCNavigationControlCenter.m */; }; 11 | 0A7CF3CDC4EF5A2EC72EAADFD0731233 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3E4E89230EF59BC255123B67864ACF77 /* Foundation.framework */; }; 12 | 1C59B0B97A283E11002ABA93D52C744B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3E4E89230EF59BC255123B67864ACF77 /* Foundation.framework */; }; 13 | 24C48C970D6366873F2F34576F5300BB /* Pods-SCNavigationControlCenter_Tests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 91FDBE8D966C382B5E5C0396220A7370 /* Pods-SCNavigationControlCenter_Tests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; 14 | 293EE2B101111EA2A85A5881673917AE /* iCarousel.h in Headers */ = {isa = PBXBuildFile; fileRef = 8999BCC0DFCAB83C393CC5A011A4B0D5 /* iCarousel.h */; settings = {ATTRIBUTES = (Public, ); }; }; 15 | 45FBD3EFE40C4BA07A59C29812A2C793 /* SCNavigationControlCenter.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 5498BEBFE0AC834A8A742E5FB13A75A4 /* SCNavigationControlCenter.bundle */; }; 16 | 4D78B95D04615B9645704A2FA4741DB5 /* Pods-SCNavigationControlCenter_Example-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = D1BE71140C63AD49B5E1259BC710E551 /* Pods-SCNavigationControlCenter_Example-dummy.m */; }; 17 | 4DB912DF4FED576EA0F96A3364D30C1B /* SCNavigationControlCenter.h in Headers */ = {isa = PBXBuildFile; fileRef = 25C23739F29F1D442AAA073EA08CE09A /* SCNavigationControlCenter.h */; settings = {ATTRIBUTES = (Public, ); }; }; 18 | 9209471ADC049937B23D6935BB160D2B /* UIViewExt.h in Headers */ = {isa = PBXBuildFile; fileRef = AD6D353E7826E58433B9CCE3EC78764F /* UIViewExt.h */; settings = {ATTRIBUTES = (Public, ); }; }; 19 | 97203B3D47C843F999DA684331221EBC /* UIViewExt.m in Sources */ = {isa = PBXBuildFile; fileRef = EE2ACC423C1900F56D5BE260285A1242 /* UIViewExt.m */; }; 20 | 99B830BD520D72F74EC598EEC50883DB /* Pods-SCNavigationControlCenter_Example-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 2890C905D2FE917D203ED807E8818A73 /* Pods-SCNavigationControlCenter_Example-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; 21 | D2CC3F0E519C9EC55BD4B0B2B756B40D /* SCNavigationControlCenter-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = BAC612D31CDA9291E6A489EA88276587 /* SCNavigationControlCenter-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; 22 | D8CC842524D3D14FF4573447BE35B7B3 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3E4E89230EF59BC255123B67864ACF77 /* Foundation.framework */; }; 23 | DC248E5C9F9FB322E65ABD7DA44BF5EE /* SCNavigationControlCenter-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 56BB9A705D7FACAC66763EA9A08A462C /* SCNavigationControlCenter-dummy.m */; }; 24 | E2DE507412B78212AF709E623AF2DBAE /* iCarousel.m in Sources */ = {isa = PBXBuildFile; fileRef = 86FBB5D00684DD17F61F31A08299F80D /* iCarousel.m */; }; 25 | F121DB05611BF0C2E962FFDE63C0F85C /* Pods-SCNavigationControlCenter_Tests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = B8D01EDDE33CF2C1C8EC43F833D83DEC /* Pods-SCNavigationControlCenter_Tests-dummy.m */; }; 26 | /* End PBXBuildFile section */ 27 | 28 | /* Begin PBXContainerItemProxy section */ 29 | 655E1FD0B0B4F93AE8D5FE7ECBE840AF /* PBXContainerItemProxy */ = { 30 | isa = PBXContainerItemProxy; 31 | containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; 32 | proxyType = 1; 33 | remoteGlobalIDString = 4EB07B6E230294134BD95DEA436EFA3A; 34 | remoteInfo = "SCNavigationControlCenter-SCNavigationControlCenter"; 35 | }; 36 | 6C86515CD33945A4FD9BFC0D0AA384C4 /* PBXContainerItemProxy */ = { 37 | isa = PBXContainerItemProxy; 38 | containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; 39 | proxyType = 1; 40 | remoteGlobalIDString = D3B38770860C1F18742237C6864AF71C; 41 | remoteInfo = SCNavigationControlCenter; 42 | }; 43 | AC7E6D69BD87C36949ECADA66F3819E6 /* PBXContainerItemProxy */ = { 44 | isa = PBXContainerItemProxy; 45 | containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; 46 | proxyType = 1; 47 | remoteGlobalIDString = D3B38770860C1F18742237C6864AF71C; 48 | remoteInfo = SCNavigationControlCenter; 49 | }; 50 | /* End PBXContainerItemProxy section */ 51 | 52 | /* Begin PBXFileReference section */ 53 | 04F220E7870CDB2A61D133632BAAFCCC /* SCNavigationControlCenter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = SCNavigationControlCenter.m; sourceTree = ""; }; 54 | 1098D06C1467621EEABFDF66FA3F155F /* Pods-SCNavigationControlCenter_Tests-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-SCNavigationControlCenter_Tests-resources.sh"; sourceTree = ""; }; 55 | 25C23739F29F1D442AAA073EA08CE09A /* SCNavigationControlCenter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SCNavigationControlCenter.h; sourceTree = ""; }; 56 | 26F8A2584C593648BB5B1209132E2030 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 57 | 2890C905D2FE917D203ED807E8818A73 /* Pods-SCNavigationControlCenter_Example-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-SCNavigationControlCenter_Example-umbrella.h"; sourceTree = ""; }; 58 | 33E9F6893BFBA5D1F2A1C982DDD0F332 /* Pods-SCNavigationControlCenter_Example-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-SCNavigationControlCenter_Example-resources.sh"; sourceTree = ""; }; 59 | 370BF96DA5F259826A3124808A4872B2 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 60 | 3E4E89230EF59BC255123B67864ACF77 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; 61 | 424BE9A16EE9EB7FD5292CEED1A19A53 /* SCNavigationControlCenter.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = SCNavigationControlCenter.modulemap; sourceTree = ""; }; 62 | 5498BEBFE0AC834A8A742E5FB13A75A4 /* SCNavigationControlCenter.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = SCNavigationControlCenter.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; 63 | 56BB9A705D7FACAC66763EA9A08A462C /* SCNavigationControlCenter-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "SCNavigationControlCenter-dummy.m"; sourceTree = ""; }; 64 | 59B8B653EB5FEA63679C0926B2605FCB /* Pods_SCNavigationControlCenter_Tests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_SCNavigationControlCenter_Tests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 65 | 5A00D15E394514EF8C14C654E8A5EB48 /* Pods-SCNavigationControlCenter_Example.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = "Pods-SCNavigationControlCenter_Example.modulemap"; sourceTree = ""; }; 66 | 6A49D397D7FD10509D5DA05F88A15479 /* SCNavigationControlCenter-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SCNavigationControlCenter-prefix.pch"; sourceTree = ""; }; 67 | 85E5E43F3B649E64A1AD9C9C3A3D5970 /* Pods-SCNavigationControlCenter_Tests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-SCNavigationControlCenter_Tests-acknowledgements.markdown"; sourceTree = ""; }; 68 | 86FBB5D00684DD17F61F31A08299F80D /* iCarousel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = iCarousel.m; sourceTree = ""; }; 69 | 8999BCC0DFCAB83C393CC5A011A4B0D5 /* iCarousel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = iCarousel.h; sourceTree = ""; }; 70 | 8C636D89EE94498535D767B30B361194 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 71 | 91FDBE8D966C382B5E5C0396220A7370 /* Pods-SCNavigationControlCenter_Tests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-SCNavigationControlCenter_Tests-umbrella.h"; sourceTree = ""; }; 72 | 92E551ABB43E3C4830D89CBB52C0E455 /* SCNavigationControlCenter.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SCNavigationControlCenter.xcconfig; sourceTree = ""; }; 73 | 9CD4E93B9658D81859F5BE2A385624E3 /* SCNavigationControlCenter.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SCNavigationControlCenter.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 74 | A996BC7A4106352489353859789CB6BE /* Pods-SCNavigationControlCenter_Example-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-SCNavigationControlCenter_Example-frameworks.sh"; sourceTree = ""; }; 75 | AD6D353E7826E58433B9CCE3EC78764F /* UIViewExt.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = UIViewExt.h; sourceTree = ""; }; 76 | B8D01EDDE33CF2C1C8EC43F833D83DEC /* Pods-SCNavigationControlCenter_Tests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-SCNavigationControlCenter_Tests-dummy.m"; sourceTree = ""; }; 77 | BA6428E9F66FD5A23C0A2E06ED26CD2F /* Podfile */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; 78 | BAC612D31CDA9291E6A489EA88276587 /* SCNavigationControlCenter-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SCNavigationControlCenter-umbrella.h"; sourceTree = ""; }; 79 | BF844F895AA3DC8D3B103B434F9DBC55 /* Pods-SCNavigationControlCenter_Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-SCNavigationControlCenter_Tests.release.xcconfig"; sourceTree = ""; }; 80 | D1BE71140C63AD49B5E1259BC710E551 /* Pods-SCNavigationControlCenter_Example-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-SCNavigationControlCenter_Example-dummy.m"; sourceTree = ""; }; 81 | D2F229BB2766AED8A1A4142F5C742C88 /* Pods-SCNavigationControlCenter_Example-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-SCNavigationControlCenter_Example-acknowledgements.plist"; sourceTree = ""; }; 82 | D8B2841DD3C5E4D4BBA06C1F72CD925F /* Pods-SCNavigationControlCenter_Tests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-SCNavigationControlCenter_Tests-acknowledgements.plist"; sourceTree = ""; }; 83 | D9B9E5DBB1153FF895696D866D075E21 /* Pods_SCNavigationControlCenter_Example.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_SCNavigationControlCenter_Example.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 84 | DDD5CC382807501E5797393C8A147BA5 /* Pods-SCNavigationControlCenter_Tests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = "Pods-SCNavigationControlCenter_Tests.modulemap"; sourceTree = ""; }; 85 | E7A0E5299D71014E900F7488E2BA4579 /* Pods-SCNavigationControlCenter_Example-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-SCNavigationControlCenter_Example-acknowledgements.markdown"; sourceTree = ""; }; 86 | E8066D878CA5CEDF87842E1C5EF3B9DE /* Pods-SCNavigationControlCenter_Tests-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-SCNavigationControlCenter_Tests-frameworks.sh"; sourceTree = ""; }; 87 | EE2ACC423C1900F56D5BE260285A1242 /* UIViewExt.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = UIViewExt.m; sourceTree = ""; }; 88 | F495AE2EBBDBFC7AEAEF208684CCA969 /* Pods-SCNavigationControlCenter_Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-SCNavigationControlCenter_Example.debug.xcconfig"; sourceTree = ""; }; 89 | F55CACDBEB7EA344211187EEF5D365BA /* Pods-SCNavigationControlCenter_Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-SCNavigationControlCenter_Example.release.xcconfig"; sourceTree = ""; }; 90 | FCD70E5A568DD0A19DAF438DEACAD229 /* Pods-SCNavigationControlCenter_Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-SCNavigationControlCenter_Tests.debug.xcconfig"; sourceTree = ""; }; 91 | /* End PBXFileReference section */ 92 | 93 | /* Begin PBXFrameworksBuildPhase section */ 94 | 3FE1E8CDDA8A10C2D2AEA96C904DEA85 /* Frameworks */ = { 95 | isa = PBXFrameworksBuildPhase; 96 | buildActionMask = 2147483647; 97 | files = ( 98 | 0A7CF3CDC4EF5A2EC72EAADFD0731233 /* Foundation.framework in Frameworks */, 99 | ); 100 | runOnlyForDeploymentPostprocessing = 0; 101 | }; 102 | 5B8A8812AC8A8D4B60C88226C64F4D4B /* Frameworks */ = { 103 | isa = PBXFrameworksBuildPhase; 104 | buildActionMask = 2147483647; 105 | files = ( 106 | D8CC842524D3D14FF4573447BE35B7B3 /* Foundation.framework in Frameworks */, 107 | ); 108 | runOnlyForDeploymentPostprocessing = 0; 109 | }; 110 | 74058E68809EF52B5D206E67F6AF0E0D /* Frameworks */ = { 111 | isa = PBXFrameworksBuildPhase; 112 | buildActionMask = 2147483647; 113 | files = ( 114 | 1C59B0B97A283E11002ABA93D52C744B /* Foundation.framework in Frameworks */, 115 | ); 116 | runOnlyForDeploymentPostprocessing = 0; 117 | }; 118 | D84FBE29107778A77BB84A1B7806F93D /* Frameworks */ = { 119 | isa = PBXFrameworksBuildPhase; 120 | buildActionMask = 2147483647; 121 | files = ( 122 | ); 123 | runOnlyForDeploymentPostprocessing = 0; 124 | }; 125 | /* End PBXFrameworksBuildPhase section */ 126 | 127 | /* Begin PBXGroup section */ 128 | 148D10C305AF98BDD189EFC8E3D01348 /* Pods-SCNavigationControlCenter_Example */ = { 129 | isa = PBXGroup; 130 | children = ( 131 | 26F8A2584C593648BB5B1209132E2030 /* Info.plist */, 132 | 5A00D15E394514EF8C14C654E8A5EB48 /* Pods-SCNavigationControlCenter_Example.modulemap */, 133 | E7A0E5299D71014E900F7488E2BA4579 /* Pods-SCNavigationControlCenter_Example-acknowledgements.markdown */, 134 | D2F229BB2766AED8A1A4142F5C742C88 /* Pods-SCNavigationControlCenter_Example-acknowledgements.plist */, 135 | D1BE71140C63AD49B5E1259BC710E551 /* Pods-SCNavigationControlCenter_Example-dummy.m */, 136 | A996BC7A4106352489353859789CB6BE /* Pods-SCNavigationControlCenter_Example-frameworks.sh */, 137 | 33E9F6893BFBA5D1F2A1C982DDD0F332 /* Pods-SCNavigationControlCenter_Example-resources.sh */, 138 | 2890C905D2FE917D203ED807E8818A73 /* Pods-SCNavigationControlCenter_Example-umbrella.h */, 139 | F495AE2EBBDBFC7AEAEF208684CCA969 /* Pods-SCNavigationControlCenter_Example.debug.xcconfig */, 140 | F55CACDBEB7EA344211187EEF5D365BA /* Pods-SCNavigationControlCenter_Example.release.xcconfig */, 141 | ); 142 | name = "Pods-SCNavigationControlCenter_Example"; 143 | path = "Target Support Files/Pods-SCNavigationControlCenter_Example"; 144 | sourceTree = ""; 145 | }; 146 | 33BD76F826C253F616B857B204644716 /* SCNavigationControlCenter */ = { 147 | isa = PBXGroup; 148 | children = ( 149 | 69F47E3EFC799C7CD964BC0F6421862B /* Pod */, 150 | 4C8525D8C86DEC0C7663C685AFF6F29D /* Support Files */, 151 | ); 152 | name = SCNavigationControlCenter; 153 | path = ../..; 154 | sourceTree = ""; 155 | }; 156 | 4C8525D8C86DEC0C7663C685AFF6F29D /* Support Files */ = { 157 | isa = PBXGroup; 158 | children = ( 159 | 370BF96DA5F259826A3124808A4872B2 /* Info.plist */, 160 | 424BE9A16EE9EB7FD5292CEED1A19A53 /* SCNavigationControlCenter.modulemap */, 161 | 92E551ABB43E3C4830D89CBB52C0E455 /* SCNavigationControlCenter.xcconfig */, 162 | 56BB9A705D7FACAC66763EA9A08A462C /* SCNavigationControlCenter-dummy.m */, 163 | 6A49D397D7FD10509D5DA05F88A15479 /* SCNavigationControlCenter-prefix.pch */, 164 | BAC612D31CDA9291E6A489EA88276587 /* SCNavigationControlCenter-umbrella.h */, 165 | ); 166 | name = "Support Files"; 167 | path = "Example/Pods/Target Support Files/SCNavigationControlCenter"; 168 | sourceTree = ""; 169 | }; 170 | 69F47E3EFC799C7CD964BC0F6421862B /* Pod */ = { 171 | isa = PBXGroup; 172 | children = ( 173 | 8495BCEDF438ECA71AF324040C8BA33D /* Classes */, 174 | ); 175 | path = Pod; 176 | sourceTree = ""; 177 | }; 178 | 7DB346D0F39D3F0E887471402A8071AB = { 179 | isa = PBXGroup; 180 | children = ( 181 | BA6428E9F66FD5A23C0A2E06ED26CD2F /* Podfile */, 182 | C757C18AF24CDB489D0641A61BE15E42 /* Development Pods */, 183 | BC3CA7F9E30CC8F7E2DD044DD34432FC /* Frameworks */, 184 | D06F3FB5F70F569FAA886668CDCBD45A /* Products */, 185 | 9A3017F67B7F7610E8727CCB2636A410 /* Targets Support Files */, 186 | ); 187 | sourceTree = ""; 188 | }; 189 | 7EF197B4AFE41B79E3B61C9327149737 /* Pods-SCNavigationControlCenter_Tests */ = { 190 | isa = PBXGroup; 191 | children = ( 192 | 8C636D89EE94498535D767B30B361194 /* Info.plist */, 193 | DDD5CC382807501E5797393C8A147BA5 /* Pods-SCNavigationControlCenter_Tests.modulemap */, 194 | 85E5E43F3B649E64A1AD9C9C3A3D5970 /* Pods-SCNavigationControlCenter_Tests-acknowledgements.markdown */, 195 | D8B2841DD3C5E4D4BBA06C1F72CD925F /* Pods-SCNavigationControlCenter_Tests-acknowledgements.plist */, 196 | B8D01EDDE33CF2C1C8EC43F833D83DEC /* Pods-SCNavigationControlCenter_Tests-dummy.m */, 197 | E8066D878CA5CEDF87842E1C5EF3B9DE /* Pods-SCNavigationControlCenter_Tests-frameworks.sh */, 198 | 1098D06C1467621EEABFDF66FA3F155F /* Pods-SCNavigationControlCenter_Tests-resources.sh */, 199 | 91FDBE8D966C382B5E5C0396220A7370 /* Pods-SCNavigationControlCenter_Tests-umbrella.h */, 200 | FCD70E5A568DD0A19DAF438DEACAD229 /* Pods-SCNavigationControlCenter_Tests.debug.xcconfig */, 201 | BF844F895AA3DC8D3B103B434F9DBC55 /* Pods-SCNavigationControlCenter_Tests.release.xcconfig */, 202 | ); 203 | name = "Pods-SCNavigationControlCenter_Tests"; 204 | path = "Target Support Files/Pods-SCNavigationControlCenter_Tests"; 205 | sourceTree = ""; 206 | }; 207 | 8495BCEDF438ECA71AF324040C8BA33D /* Classes */ = { 208 | isa = PBXGroup; 209 | children = ( 210 | 8999BCC0DFCAB83C393CC5A011A4B0D5 /* iCarousel.h */, 211 | 86FBB5D00684DD17F61F31A08299F80D /* iCarousel.m */, 212 | 25C23739F29F1D442AAA073EA08CE09A /* SCNavigationControlCenter.h */, 213 | 04F220E7870CDB2A61D133632BAAFCCC /* SCNavigationControlCenter.m */, 214 | AD6D353E7826E58433B9CCE3EC78764F /* UIViewExt.h */, 215 | EE2ACC423C1900F56D5BE260285A1242 /* UIViewExt.m */, 216 | ); 217 | path = Classes; 218 | sourceTree = ""; 219 | }; 220 | 9A3017F67B7F7610E8727CCB2636A410 /* Targets Support Files */ = { 221 | isa = PBXGroup; 222 | children = ( 223 | 148D10C305AF98BDD189EFC8E3D01348 /* Pods-SCNavigationControlCenter_Example */, 224 | 7EF197B4AFE41B79E3B61C9327149737 /* Pods-SCNavigationControlCenter_Tests */, 225 | ); 226 | name = "Targets Support Files"; 227 | sourceTree = ""; 228 | }; 229 | BC3CA7F9E30CC8F7E2DD044DD34432FC /* Frameworks */ = { 230 | isa = PBXGroup; 231 | children = ( 232 | BF6342C8B29F4CEEA088EFF7AB4DE362 /* iOS */, 233 | ); 234 | name = Frameworks; 235 | sourceTree = ""; 236 | }; 237 | BF6342C8B29F4CEEA088EFF7AB4DE362 /* iOS */ = { 238 | isa = PBXGroup; 239 | children = ( 240 | 3E4E89230EF59BC255123B67864ACF77 /* Foundation.framework */, 241 | ); 242 | name = iOS; 243 | sourceTree = ""; 244 | }; 245 | C757C18AF24CDB489D0641A61BE15E42 /* Development Pods */ = { 246 | isa = PBXGroup; 247 | children = ( 248 | 33BD76F826C253F616B857B204644716 /* SCNavigationControlCenter */, 249 | ); 250 | name = "Development Pods"; 251 | sourceTree = ""; 252 | }; 253 | D06F3FB5F70F569FAA886668CDCBD45A /* Products */ = { 254 | isa = PBXGroup; 255 | children = ( 256 | D9B9E5DBB1153FF895696D866D075E21 /* Pods_SCNavigationControlCenter_Example.framework */, 257 | 59B8B653EB5FEA63679C0926B2605FCB /* Pods_SCNavigationControlCenter_Tests.framework */, 258 | 5498BEBFE0AC834A8A742E5FB13A75A4 /* SCNavigationControlCenter.bundle */, 259 | 9CD4E93B9658D81859F5BE2A385624E3 /* SCNavigationControlCenter.framework */, 260 | ); 261 | name = Products; 262 | sourceTree = ""; 263 | }; 264 | /* End PBXGroup section */ 265 | 266 | /* Begin PBXHeadersBuildPhase section */ 267 | 1DA50E0589E199898E25E5DAC934E1DC /* Headers */ = { 268 | isa = PBXHeadersBuildPhase; 269 | buildActionMask = 2147483647; 270 | files = ( 271 | 24C48C970D6366873F2F34576F5300BB /* Pods-SCNavigationControlCenter_Tests-umbrella.h in Headers */, 272 | ); 273 | runOnlyForDeploymentPostprocessing = 0; 274 | }; 275 | 4FE7D286A65EAB79FBF79CC9E831A470 /* Headers */ = { 276 | isa = PBXHeadersBuildPhase; 277 | buildActionMask = 2147483647; 278 | files = ( 279 | 293EE2B101111EA2A85A5881673917AE /* iCarousel.h in Headers */, 280 | D2CC3F0E519C9EC55BD4B0B2B756B40D /* SCNavigationControlCenter-umbrella.h in Headers */, 281 | 4DB912DF4FED576EA0F96A3364D30C1B /* SCNavigationControlCenter.h in Headers */, 282 | 9209471ADC049937B23D6935BB160D2B /* UIViewExt.h in Headers */, 283 | ); 284 | runOnlyForDeploymentPostprocessing = 0; 285 | }; 286 | 9C5F9D77B3B9A2DE81971BECDE620E43 /* Headers */ = { 287 | isa = PBXHeadersBuildPhase; 288 | buildActionMask = 2147483647; 289 | files = ( 290 | 99B830BD520D72F74EC598EEC50883DB /* Pods-SCNavigationControlCenter_Example-umbrella.h in Headers */, 291 | ); 292 | runOnlyForDeploymentPostprocessing = 0; 293 | }; 294 | /* End PBXHeadersBuildPhase section */ 295 | 296 | /* Begin PBXNativeTarget section */ 297 | 4EB07B6E230294134BD95DEA436EFA3A /* SCNavigationControlCenter-SCNavigationControlCenter */ = { 298 | isa = PBXNativeTarget; 299 | buildConfigurationList = FB91D75388E080E7C32C5E96A1C440C3 /* Build configuration list for PBXNativeTarget "SCNavigationControlCenter-SCNavigationControlCenter" */; 300 | buildPhases = ( 301 | 76D381172C5664C68416BFB4A8CD69E7 /* Sources */, 302 | D84FBE29107778A77BB84A1B7806F93D /* Frameworks */, 303 | 9738B566BB8CEB7DD2BFB7F750F4CBD3 /* Resources */, 304 | ); 305 | buildRules = ( 306 | ); 307 | dependencies = ( 308 | ); 309 | name = "SCNavigationControlCenter-SCNavigationControlCenter"; 310 | productName = "SCNavigationControlCenter-SCNavigationControlCenter"; 311 | productReference = 5498BEBFE0AC834A8A742E5FB13A75A4 /* SCNavigationControlCenter.bundle */; 312 | productType = "com.apple.product-type.bundle"; 313 | }; 314 | BA89323198D74945CD6A67C42DB6EDB3 /* Pods-SCNavigationControlCenter_Tests */ = { 315 | isa = PBXNativeTarget; 316 | buildConfigurationList = 19826680727E3225319803DB5BD0A798 /* Build configuration list for PBXNativeTarget "Pods-SCNavigationControlCenter_Tests" */; 317 | buildPhases = ( 318 | FE335A834DAE6180C9E3D2CEFE9B3899 /* Sources */, 319 | 3FE1E8CDDA8A10C2D2AEA96C904DEA85 /* Frameworks */, 320 | 1DA50E0589E199898E25E5DAC934E1DC /* Headers */, 321 | ); 322 | buildRules = ( 323 | ); 324 | dependencies = ( 325 | 07E426DF573C76A3B5AF068CF2321FF9 /* PBXTargetDependency */, 326 | ); 327 | name = "Pods-SCNavigationControlCenter_Tests"; 328 | productName = "Pods-SCNavigationControlCenter_Tests"; 329 | productReference = 59B8B653EB5FEA63679C0926B2605FCB /* Pods_SCNavigationControlCenter_Tests.framework */; 330 | productType = "com.apple.product-type.framework"; 331 | }; 332 | D3B38770860C1F18742237C6864AF71C /* SCNavigationControlCenter */ = { 333 | isa = PBXNativeTarget; 334 | buildConfigurationList = 738607FDE223880BE341707DF1D8BF4D /* Build configuration list for PBXNativeTarget "SCNavigationControlCenter" */; 335 | buildPhases = ( 336 | D013B3114705AF369B5542EB6A975EEA /* Sources */, 337 | 74058E68809EF52B5D206E67F6AF0E0D /* Frameworks */, 338 | 01D9AFAF04AA95AFD7CF19BC8A4EC8B1 /* Resources */, 339 | 4FE7D286A65EAB79FBF79CC9E831A470 /* Headers */, 340 | ); 341 | buildRules = ( 342 | ); 343 | dependencies = ( 344 | 301D7F6AA8578975FA2476C7B1E81A5C /* PBXTargetDependency */, 345 | ); 346 | name = SCNavigationControlCenter; 347 | productName = SCNavigationControlCenter; 348 | productReference = 9CD4E93B9658D81859F5BE2A385624E3 /* SCNavigationControlCenter.framework */; 349 | productType = "com.apple.product-type.framework"; 350 | }; 351 | E1078163F45B3BDA6563920B3D6F184E /* Pods-SCNavigationControlCenter_Example */ = { 352 | isa = PBXNativeTarget; 353 | buildConfigurationList = AFB30317C495055AD5FCA333C1533EF9 /* Build configuration list for PBXNativeTarget "Pods-SCNavigationControlCenter_Example" */; 354 | buildPhases = ( 355 | 600F7D45926491C12A096E37ECC7A4F4 /* Sources */, 356 | 5B8A8812AC8A8D4B60C88226C64F4D4B /* Frameworks */, 357 | 9C5F9D77B3B9A2DE81971BECDE620E43 /* Headers */, 358 | ); 359 | buildRules = ( 360 | ); 361 | dependencies = ( 362 | 4BCA6FC617038D1AF561F3B30EE9A12D /* PBXTargetDependency */, 363 | ); 364 | name = "Pods-SCNavigationControlCenter_Example"; 365 | productName = "Pods-SCNavigationControlCenter_Example"; 366 | productReference = D9B9E5DBB1153FF895696D866D075E21 /* Pods_SCNavigationControlCenter_Example.framework */; 367 | productType = "com.apple.product-type.framework"; 368 | }; 369 | /* End PBXNativeTarget section */ 370 | 371 | /* Begin PBXProject section */ 372 | D41D8CD98F00B204E9800998ECF8427E /* Project object */ = { 373 | isa = PBXProject; 374 | attributes = { 375 | LastSwiftUpdateCheck = 0700; 376 | LastUpgradeCheck = 0700; 377 | }; 378 | buildConfigurationList = 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */; 379 | compatibilityVersion = "Xcode 3.2"; 380 | developmentRegion = English; 381 | hasScannedForEncodings = 0; 382 | knownRegions = ( 383 | en, 384 | ); 385 | mainGroup = 7DB346D0F39D3F0E887471402A8071AB; 386 | productRefGroup = D06F3FB5F70F569FAA886668CDCBD45A /* Products */; 387 | projectDirPath = ""; 388 | projectRoot = ""; 389 | targets = ( 390 | E1078163F45B3BDA6563920B3D6F184E /* Pods-SCNavigationControlCenter_Example */, 391 | BA89323198D74945CD6A67C42DB6EDB3 /* Pods-SCNavigationControlCenter_Tests */, 392 | D3B38770860C1F18742237C6864AF71C /* SCNavigationControlCenter */, 393 | 4EB07B6E230294134BD95DEA436EFA3A /* SCNavigationControlCenter-SCNavigationControlCenter */, 394 | ); 395 | }; 396 | /* End PBXProject section */ 397 | 398 | /* Begin PBXResourcesBuildPhase section */ 399 | 01D9AFAF04AA95AFD7CF19BC8A4EC8B1 /* Resources */ = { 400 | isa = PBXResourcesBuildPhase; 401 | buildActionMask = 2147483647; 402 | files = ( 403 | 45FBD3EFE40C4BA07A59C29812A2C793 /* SCNavigationControlCenter.bundle in Resources */, 404 | ); 405 | runOnlyForDeploymentPostprocessing = 0; 406 | }; 407 | 9738B566BB8CEB7DD2BFB7F750F4CBD3 /* Resources */ = { 408 | isa = PBXResourcesBuildPhase; 409 | buildActionMask = 2147483647; 410 | files = ( 411 | ); 412 | runOnlyForDeploymentPostprocessing = 0; 413 | }; 414 | /* End PBXResourcesBuildPhase section */ 415 | 416 | /* Begin PBXSourcesBuildPhase section */ 417 | 600F7D45926491C12A096E37ECC7A4F4 /* Sources */ = { 418 | isa = PBXSourcesBuildPhase; 419 | buildActionMask = 2147483647; 420 | files = ( 421 | 4D78B95D04615B9645704A2FA4741DB5 /* Pods-SCNavigationControlCenter_Example-dummy.m in Sources */, 422 | ); 423 | runOnlyForDeploymentPostprocessing = 0; 424 | }; 425 | 76D381172C5664C68416BFB4A8CD69E7 /* Sources */ = { 426 | isa = PBXSourcesBuildPhase; 427 | buildActionMask = 2147483647; 428 | files = ( 429 | ); 430 | runOnlyForDeploymentPostprocessing = 0; 431 | }; 432 | D013B3114705AF369B5542EB6A975EEA /* Sources */ = { 433 | isa = PBXSourcesBuildPhase; 434 | buildActionMask = 2147483647; 435 | files = ( 436 | E2DE507412B78212AF709E623AF2DBAE /* iCarousel.m in Sources */, 437 | DC248E5C9F9FB322E65ABD7DA44BF5EE /* SCNavigationControlCenter-dummy.m in Sources */, 438 | 07B159265FCEC18A2209EEA71CE6EA04 /* SCNavigationControlCenter.m in Sources */, 439 | 97203B3D47C843F999DA684331221EBC /* UIViewExt.m in Sources */, 440 | ); 441 | runOnlyForDeploymentPostprocessing = 0; 442 | }; 443 | FE335A834DAE6180C9E3D2CEFE9B3899 /* Sources */ = { 444 | isa = PBXSourcesBuildPhase; 445 | buildActionMask = 2147483647; 446 | files = ( 447 | F121DB05611BF0C2E962FFDE63C0F85C /* Pods-SCNavigationControlCenter_Tests-dummy.m in Sources */, 448 | ); 449 | runOnlyForDeploymentPostprocessing = 0; 450 | }; 451 | /* End PBXSourcesBuildPhase section */ 452 | 453 | /* Begin PBXTargetDependency section */ 454 | 07E426DF573C76A3B5AF068CF2321FF9 /* PBXTargetDependency */ = { 455 | isa = PBXTargetDependency; 456 | name = SCNavigationControlCenter; 457 | target = D3B38770860C1F18742237C6864AF71C /* SCNavigationControlCenter */; 458 | targetProxy = 6C86515CD33945A4FD9BFC0D0AA384C4 /* PBXContainerItemProxy */; 459 | }; 460 | 301D7F6AA8578975FA2476C7B1E81A5C /* PBXTargetDependency */ = { 461 | isa = PBXTargetDependency; 462 | name = "SCNavigationControlCenter-SCNavigationControlCenter"; 463 | target = 4EB07B6E230294134BD95DEA436EFA3A /* SCNavigationControlCenter-SCNavigationControlCenter */; 464 | targetProxy = 655E1FD0B0B4F93AE8D5FE7ECBE840AF /* PBXContainerItemProxy */; 465 | }; 466 | 4BCA6FC617038D1AF561F3B30EE9A12D /* PBXTargetDependency */ = { 467 | isa = PBXTargetDependency; 468 | name = SCNavigationControlCenter; 469 | target = D3B38770860C1F18742237C6864AF71C /* SCNavigationControlCenter */; 470 | targetProxy = AC7E6D69BD87C36949ECADA66F3819E6 /* PBXContainerItemProxy */; 471 | }; 472 | /* End PBXTargetDependency section */ 473 | 474 | /* Begin XCBuildConfiguration section */ 475 | 0A67F9D804FB92A84A56F8E3FF602A22 /* Release */ = { 476 | isa = XCBuildConfiguration; 477 | baseConfigurationReference = 92E551ABB43E3C4830D89CBB52C0E455 /* SCNavigationControlCenter.xcconfig */; 478 | buildSettings = { 479 | ENABLE_STRICT_OBJC_MSGSEND = YES; 480 | PRODUCT_NAME = SCNavigationControlCenter; 481 | SDKROOT = iphoneos; 482 | SKIP_INSTALL = YES; 483 | WRAPPER_EXTENSION = bundle; 484 | }; 485 | name = Release; 486 | }; 487 | 38649CCF4B68416821818461642BCE5F /* Debug */ = { 488 | isa = XCBuildConfiguration; 489 | baseConfigurationReference = 92E551ABB43E3C4830D89CBB52C0E455 /* SCNavigationControlCenter.xcconfig */; 490 | buildSettings = { 491 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 492 | CURRENT_PROJECT_VERSION = 1; 493 | DEFINES_MODULE = YES; 494 | DYLIB_COMPATIBILITY_VERSION = 1; 495 | DYLIB_CURRENT_VERSION = 1; 496 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 497 | ENABLE_STRICT_OBJC_MSGSEND = YES; 498 | GCC_PREFIX_HEADER = "Target Support Files/SCNavigationControlCenter/SCNavigationControlCenter-prefix.pch"; 499 | INFOPLIST_FILE = "Target Support Files/SCNavigationControlCenter/Info.plist"; 500 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 501 | IPHONEOS_DEPLOYMENT_TARGET = 8.0; 502 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 503 | MODULEMAP_FILE = "Target Support Files/SCNavigationControlCenter/SCNavigationControlCenter.modulemap"; 504 | MTL_ENABLE_DEBUG_INFO = YES; 505 | PRODUCT_NAME = SCNavigationControlCenter; 506 | SDKROOT = iphoneos; 507 | SKIP_INSTALL = YES; 508 | TARGETED_DEVICE_FAMILY = "1,2"; 509 | VERSIONING_SYSTEM = "apple-generic"; 510 | VERSION_INFO_PREFIX = ""; 511 | }; 512 | name = Debug; 513 | }; 514 | 4B0FCEE46EBAD4FFAECF4971DAFCCD70 /* Debug */ = { 515 | isa = XCBuildConfiguration; 516 | baseConfigurationReference = F495AE2EBBDBFC7AEAEF208684CCA969 /* Pods-SCNavigationControlCenter_Example.debug.xcconfig */; 517 | buildSettings = { 518 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 519 | CURRENT_PROJECT_VERSION = 1; 520 | DEFINES_MODULE = YES; 521 | DYLIB_COMPATIBILITY_VERSION = 1; 522 | DYLIB_CURRENT_VERSION = 1; 523 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 524 | ENABLE_STRICT_OBJC_MSGSEND = YES; 525 | INFOPLIST_FILE = "Target Support Files/Pods-SCNavigationControlCenter_Example/Info.plist"; 526 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 527 | IPHONEOS_DEPLOYMENT_TARGET = 8.0; 528 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 529 | MACH_O_TYPE = staticlib; 530 | MODULEMAP_FILE = "Target Support Files/Pods-SCNavigationControlCenter_Example/Pods-SCNavigationControlCenter_Example.modulemap"; 531 | MTL_ENABLE_DEBUG_INFO = YES; 532 | OTHER_LDFLAGS = ""; 533 | OTHER_LIBTOOLFLAGS = ""; 534 | PODS_ROOT = "$(SRCROOT)"; 535 | PRODUCT_NAME = Pods_SCNavigationControlCenter_Example; 536 | SDKROOT = iphoneos; 537 | SKIP_INSTALL = YES; 538 | TARGETED_DEVICE_FAMILY = "1,2"; 539 | VERSIONING_SYSTEM = "apple-generic"; 540 | VERSION_INFO_PREFIX = ""; 541 | }; 542 | name = Debug; 543 | }; 544 | 52E517B6BD34CFE98E5EB00D9ACBE5F6 /* Release */ = { 545 | isa = XCBuildConfiguration; 546 | baseConfigurationReference = 92E551ABB43E3C4830D89CBB52C0E455 /* SCNavigationControlCenter.xcconfig */; 547 | buildSettings = { 548 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 549 | CURRENT_PROJECT_VERSION = 1; 550 | DEFINES_MODULE = YES; 551 | DYLIB_COMPATIBILITY_VERSION = 1; 552 | DYLIB_CURRENT_VERSION = 1; 553 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 554 | ENABLE_STRICT_OBJC_MSGSEND = YES; 555 | GCC_PREFIX_HEADER = "Target Support Files/SCNavigationControlCenter/SCNavigationControlCenter-prefix.pch"; 556 | INFOPLIST_FILE = "Target Support Files/SCNavigationControlCenter/Info.plist"; 557 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 558 | IPHONEOS_DEPLOYMENT_TARGET = 8.0; 559 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 560 | MODULEMAP_FILE = "Target Support Files/SCNavigationControlCenter/SCNavigationControlCenter.modulemap"; 561 | MTL_ENABLE_DEBUG_INFO = NO; 562 | PRODUCT_NAME = SCNavigationControlCenter; 563 | SDKROOT = iphoneos; 564 | SKIP_INSTALL = YES; 565 | TARGETED_DEVICE_FAMILY = "1,2"; 566 | VERSIONING_SYSTEM = "apple-generic"; 567 | VERSION_INFO_PREFIX = ""; 568 | }; 569 | name = Release; 570 | }; 571 | 6881192F4D39932DC1F078736AFE2B0A /* Debug */ = { 572 | isa = XCBuildConfiguration; 573 | baseConfigurationReference = 92E551ABB43E3C4830D89CBB52C0E455 /* SCNavigationControlCenter.xcconfig */; 574 | buildSettings = { 575 | ENABLE_STRICT_OBJC_MSGSEND = YES; 576 | PRODUCT_NAME = SCNavigationControlCenter; 577 | SDKROOT = iphoneos; 578 | SKIP_INSTALL = YES; 579 | WRAPPER_EXTENSION = bundle; 580 | }; 581 | name = Debug; 582 | }; 583 | A70CDAD61F90AC503C7D04CC22DA2923 /* Debug */ = { 584 | isa = XCBuildConfiguration; 585 | buildSettings = { 586 | ALWAYS_SEARCH_USER_PATHS = NO; 587 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 588 | CLANG_CXX_LIBRARY = "libc++"; 589 | CLANG_ENABLE_MODULES = YES; 590 | CLANG_ENABLE_OBJC_ARC = YES; 591 | CLANG_WARN_BOOL_CONVERSION = YES; 592 | CLANG_WARN_CONSTANT_CONVERSION = YES; 593 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES; 594 | CLANG_WARN_EMPTY_BODY = YES; 595 | CLANG_WARN_ENUM_CONVERSION = YES; 596 | CLANG_WARN_INT_CONVERSION = YES; 597 | CLANG_WARN_OBJC_ROOT_CLASS = YES; 598 | CLANG_WARN_UNREACHABLE_CODE = YES; 599 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 600 | COPY_PHASE_STRIP = NO; 601 | GCC_C_LANGUAGE_STANDARD = gnu99; 602 | GCC_DYNAMIC_NO_PIC = NO; 603 | GCC_OPTIMIZATION_LEVEL = 0; 604 | GCC_PREPROCESSOR_DEFINITIONS = ( 605 | "DEBUG=1", 606 | "$(inherited)", 607 | ); 608 | GCC_SYMBOLS_PRIVATE_EXTERN = NO; 609 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 610 | GCC_WARN_ABOUT_RETURN_TYPE = YES; 611 | GCC_WARN_UNDECLARED_SELECTOR = YES; 612 | GCC_WARN_UNINITIALIZED_AUTOS = YES; 613 | GCC_WARN_UNUSED_FUNCTION = YES; 614 | GCC_WARN_UNUSED_VARIABLE = YES; 615 | IPHONEOS_DEPLOYMENT_TARGET = 8.0; 616 | ONLY_ACTIVE_ARCH = YES; 617 | STRIP_INSTALLED_PRODUCT = NO; 618 | SYMROOT = "${SRCROOT}/../build"; 619 | }; 620 | name = Debug; 621 | }; 622 | CC531E80D199C70D9F4AB39E965BF168 /* Debug */ = { 623 | isa = XCBuildConfiguration; 624 | baseConfigurationReference = FCD70E5A568DD0A19DAF438DEACAD229 /* Pods-SCNavigationControlCenter_Tests.debug.xcconfig */; 625 | buildSettings = { 626 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 627 | CURRENT_PROJECT_VERSION = 1; 628 | DEFINES_MODULE = YES; 629 | DYLIB_COMPATIBILITY_VERSION = 1; 630 | DYLIB_CURRENT_VERSION = 1; 631 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 632 | ENABLE_STRICT_OBJC_MSGSEND = YES; 633 | INFOPLIST_FILE = "Target Support Files/Pods-SCNavigationControlCenter_Tests/Info.plist"; 634 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 635 | IPHONEOS_DEPLOYMENT_TARGET = 8.0; 636 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 637 | MACH_O_TYPE = staticlib; 638 | MODULEMAP_FILE = "Target Support Files/Pods-SCNavigationControlCenter_Tests/Pods-SCNavigationControlCenter_Tests.modulemap"; 639 | MTL_ENABLE_DEBUG_INFO = YES; 640 | OTHER_LDFLAGS = ""; 641 | OTHER_LIBTOOLFLAGS = ""; 642 | PODS_ROOT = "$(SRCROOT)"; 643 | PRODUCT_NAME = Pods_SCNavigationControlCenter_Tests; 644 | SDKROOT = iphoneos; 645 | SKIP_INSTALL = YES; 646 | TARGETED_DEVICE_FAMILY = "1,2"; 647 | VERSIONING_SYSTEM = "apple-generic"; 648 | VERSION_INFO_PREFIX = ""; 649 | }; 650 | name = Debug; 651 | }; 652 | FB45FFD90572718D82AB9092B750F0CA /* Release */ = { 653 | isa = XCBuildConfiguration; 654 | buildSettings = { 655 | ALWAYS_SEARCH_USER_PATHS = NO; 656 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 657 | CLANG_CXX_LIBRARY = "libc++"; 658 | CLANG_ENABLE_MODULES = YES; 659 | CLANG_ENABLE_OBJC_ARC = YES; 660 | CLANG_WARN_BOOL_CONVERSION = YES; 661 | CLANG_WARN_CONSTANT_CONVERSION = YES; 662 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES; 663 | CLANG_WARN_EMPTY_BODY = YES; 664 | CLANG_WARN_ENUM_CONVERSION = YES; 665 | CLANG_WARN_INT_CONVERSION = YES; 666 | CLANG_WARN_OBJC_ROOT_CLASS = YES; 667 | CLANG_WARN_UNREACHABLE_CODE = YES; 668 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 669 | COPY_PHASE_STRIP = YES; 670 | ENABLE_NS_ASSERTIONS = NO; 671 | GCC_C_LANGUAGE_STANDARD = gnu99; 672 | GCC_PREPROCESSOR_DEFINITIONS = "RELEASE=1"; 673 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 674 | GCC_WARN_ABOUT_RETURN_TYPE = YES; 675 | GCC_WARN_UNDECLARED_SELECTOR = YES; 676 | GCC_WARN_UNINITIALIZED_AUTOS = YES; 677 | GCC_WARN_UNUSED_FUNCTION = YES; 678 | GCC_WARN_UNUSED_VARIABLE = YES; 679 | IPHONEOS_DEPLOYMENT_TARGET = 8.0; 680 | STRIP_INSTALLED_PRODUCT = NO; 681 | SYMROOT = "${SRCROOT}/../build"; 682 | VALIDATE_PRODUCT = YES; 683 | }; 684 | name = Release; 685 | }; 686 | FB9D96EE603A21CA16E55F3D30DA8B03 /* Release */ = { 687 | isa = XCBuildConfiguration; 688 | baseConfigurationReference = BF844F895AA3DC8D3B103B434F9DBC55 /* Pods-SCNavigationControlCenter_Tests.release.xcconfig */; 689 | buildSettings = { 690 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 691 | CURRENT_PROJECT_VERSION = 1; 692 | DEFINES_MODULE = YES; 693 | DYLIB_COMPATIBILITY_VERSION = 1; 694 | DYLIB_CURRENT_VERSION = 1; 695 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 696 | ENABLE_STRICT_OBJC_MSGSEND = YES; 697 | INFOPLIST_FILE = "Target Support Files/Pods-SCNavigationControlCenter_Tests/Info.plist"; 698 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 699 | IPHONEOS_DEPLOYMENT_TARGET = 8.0; 700 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 701 | MACH_O_TYPE = staticlib; 702 | MODULEMAP_FILE = "Target Support Files/Pods-SCNavigationControlCenter_Tests/Pods-SCNavigationControlCenter_Tests.modulemap"; 703 | MTL_ENABLE_DEBUG_INFO = NO; 704 | OTHER_LDFLAGS = ""; 705 | OTHER_LIBTOOLFLAGS = ""; 706 | PODS_ROOT = "$(SRCROOT)"; 707 | PRODUCT_NAME = Pods_SCNavigationControlCenter_Tests; 708 | SDKROOT = iphoneos; 709 | SKIP_INSTALL = YES; 710 | TARGETED_DEVICE_FAMILY = "1,2"; 711 | VERSIONING_SYSTEM = "apple-generic"; 712 | VERSION_INFO_PREFIX = ""; 713 | }; 714 | name = Release; 715 | }; 716 | FD9535BE5187E12E259758BDE9A0F2EF /* Release */ = { 717 | isa = XCBuildConfiguration; 718 | baseConfigurationReference = F55CACDBEB7EA344211187EEF5D365BA /* Pods-SCNavigationControlCenter_Example.release.xcconfig */; 719 | buildSettings = { 720 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 721 | CURRENT_PROJECT_VERSION = 1; 722 | DEFINES_MODULE = YES; 723 | DYLIB_COMPATIBILITY_VERSION = 1; 724 | DYLIB_CURRENT_VERSION = 1; 725 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 726 | ENABLE_STRICT_OBJC_MSGSEND = YES; 727 | INFOPLIST_FILE = "Target Support Files/Pods-SCNavigationControlCenter_Example/Info.plist"; 728 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 729 | IPHONEOS_DEPLOYMENT_TARGET = 8.0; 730 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 731 | MACH_O_TYPE = staticlib; 732 | MODULEMAP_FILE = "Target Support Files/Pods-SCNavigationControlCenter_Example/Pods-SCNavigationControlCenter_Example.modulemap"; 733 | MTL_ENABLE_DEBUG_INFO = NO; 734 | OTHER_LDFLAGS = ""; 735 | OTHER_LIBTOOLFLAGS = ""; 736 | PODS_ROOT = "$(SRCROOT)"; 737 | PRODUCT_NAME = Pods_SCNavigationControlCenter_Example; 738 | SDKROOT = iphoneos; 739 | SKIP_INSTALL = YES; 740 | TARGETED_DEVICE_FAMILY = "1,2"; 741 | VERSIONING_SYSTEM = "apple-generic"; 742 | VERSION_INFO_PREFIX = ""; 743 | }; 744 | name = Release; 745 | }; 746 | /* End XCBuildConfiguration section */ 747 | 748 | /* Begin XCConfigurationList section */ 749 | 19826680727E3225319803DB5BD0A798 /* Build configuration list for PBXNativeTarget "Pods-SCNavigationControlCenter_Tests" */ = { 750 | isa = XCConfigurationList; 751 | buildConfigurations = ( 752 | CC531E80D199C70D9F4AB39E965BF168 /* Debug */, 753 | FB9D96EE603A21CA16E55F3D30DA8B03 /* Release */, 754 | ); 755 | defaultConfigurationIsVisible = 0; 756 | defaultConfigurationName = Release; 757 | }; 758 | 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */ = { 759 | isa = XCConfigurationList; 760 | buildConfigurations = ( 761 | A70CDAD61F90AC503C7D04CC22DA2923 /* Debug */, 762 | FB45FFD90572718D82AB9092B750F0CA /* Release */, 763 | ); 764 | defaultConfigurationIsVisible = 0; 765 | defaultConfigurationName = Release; 766 | }; 767 | 738607FDE223880BE341707DF1D8BF4D /* Build configuration list for PBXNativeTarget "SCNavigationControlCenter" */ = { 768 | isa = XCConfigurationList; 769 | buildConfigurations = ( 770 | 38649CCF4B68416821818461642BCE5F /* Debug */, 771 | 52E517B6BD34CFE98E5EB00D9ACBE5F6 /* Release */, 772 | ); 773 | defaultConfigurationIsVisible = 0; 774 | defaultConfigurationName = Release; 775 | }; 776 | AFB30317C495055AD5FCA333C1533EF9 /* Build configuration list for PBXNativeTarget "Pods-SCNavigationControlCenter_Example" */ = { 777 | isa = XCConfigurationList; 778 | buildConfigurations = ( 779 | 4B0FCEE46EBAD4FFAECF4971DAFCCD70 /* Debug */, 780 | FD9535BE5187E12E259758BDE9A0F2EF /* Release */, 781 | ); 782 | defaultConfigurationIsVisible = 0; 783 | defaultConfigurationName = Release; 784 | }; 785 | FB91D75388E080E7C32C5E96A1C440C3 /* Build configuration list for PBXNativeTarget "SCNavigationControlCenter-SCNavigationControlCenter" */ = { 786 | isa = XCConfigurationList; 787 | buildConfigurations = ( 788 | 6881192F4D39932DC1F078736AFE2B0A /* Debug */, 789 | 0A67F9D804FB92A84A56F8E3FF602A22 /* Release */, 790 | ); 791 | defaultConfigurationIsVisible = 0; 792 | defaultConfigurationName = Release; 793 | }; 794 | /* End XCConfigurationList section */ 795 | }; 796 | rootObject = D41D8CD98F00B204E9800998ECF8427E /* Project object */; 797 | } 798 | -------------------------------------------------------------------------------- /Example/Pods/Pods.xcodeproj/xcshareddata/xcschemes/SCNavigationControlCenter.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 34 | 35 | 45 | 46 | 52 | 53 | 54 | 55 | 56 | 57 | 63 | 64 | 66 | 67 | 70 | 71 | 72 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-SCNavigationControlCenter_Example/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.0.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-SCNavigationControlCenter_Example/Pods-SCNavigationControlCenter_Example-acknowledgements.markdown: -------------------------------------------------------------------------------- 1 | # Acknowledgements 2 | This application makes use of the following third party libraries: 3 | 4 | ## SCNavigationControlCenter 5 | 6 | Copyright (c) 2015 Sergio Chan 7 | The MIT License (MIT) 8 | 9 | 10 | Permission is hereby granted, free of charge, to any person obtaining a copy 11 | of this software and associated documentation files (the "Software"), to deal 12 | in the Software without restriction, including without limitation the rights 13 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 14 | copies of the Software, and to permit persons to whom the Software is 15 | furnished to do so, subject to the following conditions: 16 | 17 | The above copyright notice and this permission notice shall be included in 18 | all copies or substantial portions of the Software. 19 | 20 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 21 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 22 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 23 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 24 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 25 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 26 | THE SOFTWARE. 27 | 28 | 29 | 30 | Generated by CocoaPods - http://cocoapods.org 31 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-SCNavigationControlCenter_Example/Pods-SCNavigationControlCenter_Example-acknowledgements.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PreferenceSpecifiers 6 | 7 | 8 | FooterText 9 | This application makes use of the following third party libraries: 10 | Title 11 | Acknowledgements 12 | Type 13 | PSGroupSpecifier 14 | 15 | 16 | FooterText 17 | Copyright (c) 2015 Sergio Chan <yuheng9211@qq.com> 18 | The MIT License (MIT) 19 | 20 | 21 | Permission is hereby granted, free of charge, to any person obtaining a copy 22 | of this software and associated documentation files (the "Software"), to deal 23 | in the Software without restriction, including without limitation the rights 24 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 25 | copies of the Software, and to permit persons to whom the Software is 26 | furnished to do so, subject to the following conditions: 27 | 28 | The above copyright notice and this permission notice shall be included in 29 | all copies or substantial portions of the Software. 30 | 31 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 32 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 33 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 34 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 35 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 36 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 37 | THE SOFTWARE. 38 | 39 | 40 | 41 | Title 42 | SCNavigationControlCenter 43 | Type 44 | PSGroupSpecifier 45 | 46 | 47 | FooterText 48 | Generated by CocoaPods - http://cocoapods.org 49 | Title 50 | 51 | Type 52 | PSGroupSpecifier 53 | 54 | 55 | StringsTable 56 | Acknowledgements 57 | Title 58 | Acknowledgements 59 | 60 | 61 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-SCNavigationControlCenter_Example/Pods-SCNavigationControlCenter_Example-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_SCNavigationControlCenter_Example : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_SCNavigationControlCenter_Example 5 | @end 6 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-SCNavigationControlCenter_Example/Pods-SCNavigationControlCenter_Example-frameworks.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | 4 | echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 5 | mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 6 | 7 | SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" 8 | 9 | install_framework() 10 | { 11 | if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then 12 | local source="${BUILT_PRODUCTS_DIR}/$1" 13 | elif [ -r "${BUILT_PRODUCTS_DIR}/$(basename "$1")" ]; then 14 | local source="${BUILT_PRODUCTS_DIR}/$(basename "$1")" 15 | elif [ -r "$1" ]; then 16 | local source="$1" 17 | fi 18 | 19 | local destination="${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 20 | 21 | if [ -L "${source}" ]; then 22 | echo "Symlinked..." 23 | source="$(readlink "${source}")" 24 | fi 25 | 26 | # use filter instead of exclude so missing patterns dont' throw errors 27 | echo "rsync -av --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"" 28 | rsync -av --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}" 29 | 30 | local basename 31 | basename="$(basename -s .framework "$1")" 32 | binary="${destination}/${basename}.framework/${basename}" 33 | if ! [ -r "$binary" ]; then 34 | binary="${destination}/${basename}" 35 | fi 36 | 37 | # Strip invalid architectures so "fat" simulator / device frameworks work on device 38 | if [[ "$(file "$binary")" == *"dynamically linked shared library"* ]]; then 39 | strip_invalid_archs "$binary" 40 | fi 41 | 42 | # Resign the code if required by the build settings to avoid unstable apps 43 | code_sign_if_enabled "${destination}/$(basename "$1")" 44 | 45 | # Embed linked Swift runtime libraries. No longer necessary as of Xcode 7. 46 | if [ "${XCODE_VERSION_MAJOR}" -lt 7 ]; then 47 | local swift_runtime_libs 48 | swift_runtime_libs=$(xcrun otool -LX "$binary" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u && exit ${PIPESTATUS[0]}) 49 | for lib in $swift_runtime_libs; do 50 | echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\"" 51 | rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}" 52 | code_sign_if_enabled "${destination}/${lib}" 53 | done 54 | fi 55 | } 56 | 57 | # Signs a framework with the provided identity 58 | code_sign_if_enabled() { 59 | if [ -n "${EXPANDED_CODE_SIGN_IDENTITY}" -a "${CODE_SIGNING_REQUIRED}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then 60 | # Use the current code_sign_identitiy 61 | echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}" 62 | echo "/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} --preserve-metadata=identifier,entitlements \"$1\"" 63 | /usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} --preserve-metadata=identifier,entitlements "$1" 64 | fi 65 | } 66 | 67 | # Strip invalid architectures 68 | strip_invalid_archs() { 69 | binary="$1" 70 | # Get architectures for current file 71 | archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | rev)" 72 | stripped="" 73 | for arch in $archs; do 74 | if ! [[ "${VALID_ARCHS}" == *"$arch"* ]]; then 75 | # Strip non-valid architectures in-place 76 | lipo -remove "$arch" -output "$binary" "$binary" || exit 1 77 | stripped="$stripped $arch" 78 | fi 79 | done 80 | if [[ "$stripped" ]]; then 81 | echo "Stripped $binary of architectures:$stripped" 82 | fi 83 | } 84 | 85 | 86 | if [[ "$CONFIGURATION" == "Debug" ]]; then 87 | install_framework "Pods-SCNavigationControlCenter_Example/SCNavigationControlCenter.framework" 88 | fi 89 | if [[ "$CONFIGURATION" == "Release" ]]; then 90 | install_framework "Pods-SCNavigationControlCenter_Example/SCNavigationControlCenter.framework" 91 | fi 92 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-SCNavigationControlCenter_Example/Pods-SCNavigationControlCenter_Example-resources.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | 4 | mkdir -p "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 5 | 6 | RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt 7 | > "$RESOURCES_TO_COPY" 8 | 9 | XCASSET_FILES=() 10 | 11 | realpath() { 12 | DIRECTORY="$(cd "${1%/*}" && pwd)" 13 | FILENAME="${1##*/}" 14 | echo "$DIRECTORY/$FILENAME" 15 | } 16 | 17 | install_resource() 18 | { 19 | case $1 in 20 | *.storyboard) 21 | echo "ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .storyboard`.storyboardc ${PODS_ROOT}/$1 --sdk ${SDKROOT}" 22 | ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .storyboard`.storyboardc" "${PODS_ROOT}/$1" --sdk "${SDKROOT}" 23 | ;; 24 | *.xib) 25 | echo "ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .xib`.nib ${PODS_ROOT}/$1 --sdk ${SDKROOT}" 26 | ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .xib`.nib" "${PODS_ROOT}/$1" --sdk "${SDKROOT}" 27 | ;; 28 | *.framework) 29 | echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 30 | mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 31 | echo "rsync -av ${PODS_ROOT}/$1 ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 32 | rsync -av "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 33 | ;; 34 | *.xcdatamodel) 35 | echo "xcrun momc \"${PODS_ROOT}/$1\" \"${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1"`.mom\"" 36 | xcrun momc "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcdatamodel`.mom" 37 | ;; 38 | *.xcdatamodeld) 39 | echo "xcrun momc \"${PODS_ROOT}/$1\" \"${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcdatamodeld`.momd\"" 40 | xcrun momc "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcdatamodeld`.momd" 41 | ;; 42 | *.xcmappingmodel) 43 | echo "xcrun mapc \"${PODS_ROOT}/$1\" \"${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcmappingmodel`.cdm\"" 44 | xcrun mapc "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcmappingmodel`.cdm" 45 | ;; 46 | *.xcassets) 47 | ABSOLUTE_XCASSET_FILE=$(realpath "${PODS_ROOT}/$1") 48 | XCASSET_FILES+=("$ABSOLUTE_XCASSET_FILE") 49 | ;; 50 | /*) 51 | echo "$1" 52 | echo "$1" >> "$RESOURCES_TO_COPY" 53 | ;; 54 | *) 55 | echo "${PODS_ROOT}/$1" 56 | echo "${PODS_ROOT}/$1" >> "$RESOURCES_TO_COPY" 57 | ;; 58 | esac 59 | } 60 | 61 | mkdir -p "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 62 | rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 63 | if [[ "${ACTION}" == "install" ]] && [[ "${SKIP_INSTALL}" == "NO" ]]; then 64 | mkdir -p "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 65 | rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 66 | fi 67 | rm -f "$RESOURCES_TO_COPY" 68 | 69 | if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "$XCASSET_FILES" ] 70 | then 71 | case "${TARGETED_DEVICE_FAMILY}" in 72 | 1,2) 73 | TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone" 74 | ;; 75 | 1) 76 | TARGET_DEVICE_ARGS="--target-device iphone" 77 | ;; 78 | 2) 79 | TARGET_DEVICE_ARGS="--target-device ipad" 80 | ;; 81 | *) 82 | TARGET_DEVICE_ARGS="--target-device mac" 83 | ;; 84 | esac 85 | 86 | # Find all other xcassets (this unfortunately includes those of path pods and other targets). 87 | OTHER_XCASSETS=$(find "$PWD" -iname "*.xcassets" -type d) 88 | while read line; do 89 | if [[ $line != "`realpath $PODS_ROOT`*" ]]; then 90 | XCASSET_FILES+=("$line") 91 | fi 92 | done <<<"$OTHER_XCASSETS" 93 | 94 | printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${IPHONEOS_DEPLOYMENT_TARGET}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 95 | fi 96 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-SCNavigationControlCenter_Example/Pods-SCNavigationControlCenter_Example-umbrella.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | 4 | FOUNDATION_EXPORT double Pods_SCNavigationControlCenter_ExampleVersionNumber; 5 | FOUNDATION_EXPORT const unsigned char Pods_SCNavigationControlCenter_ExampleVersionString[]; 6 | 7 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-SCNavigationControlCenter_Example/Pods-SCNavigationControlCenter_Example.debug.xcconfig: -------------------------------------------------------------------------------- 1 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 2 | LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' 3 | OTHER_CFLAGS = $(inherited) -iquote "$CONFIGURATION_BUILD_DIR/SCNavigationControlCenter.framework/Headers" 4 | OTHER_LDFLAGS = $(inherited) -framework "SCNavigationControlCenter" 5 | PODS_FRAMEWORK_BUILD_PATH = $(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/Pods-SCNavigationControlCenter_Example 6 | PODS_ROOT = ${SRCROOT}/Pods -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-SCNavigationControlCenter_Example/Pods-SCNavigationControlCenter_Example.modulemap: -------------------------------------------------------------------------------- 1 | framework module Pods_SCNavigationControlCenter_Example { 2 | umbrella header "Pods-SCNavigationControlCenter_Example-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-SCNavigationControlCenter_Example/Pods-SCNavigationControlCenter_Example.release.xcconfig: -------------------------------------------------------------------------------- 1 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 2 | LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' 3 | OTHER_CFLAGS = $(inherited) -iquote "$CONFIGURATION_BUILD_DIR/SCNavigationControlCenter.framework/Headers" 4 | OTHER_LDFLAGS = $(inherited) -framework "SCNavigationControlCenter" 5 | PODS_FRAMEWORK_BUILD_PATH = $(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/Pods-SCNavigationControlCenter_Example 6 | PODS_ROOT = ${SRCROOT}/Pods -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-SCNavigationControlCenter_Tests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.0.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-SCNavigationControlCenter_Tests/Pods-SCNavigationControlCenter_Tests-acknowledgements.markdown: -------------------------------------------------------------------------------- 1 | # Acknowledgements 2 | This application makes use of the following third party libraries: 3 | 4 | ## SCNavigationControlCenter 5 | 6 | Copyright (c) 2015 Sergio Chan 7 | The MIT License (MIT) 8 | 9 | 10 | Permission is hereby granted, free of charge, to any person obtaining a copy 11 | of this software and associated documentation files (the "Software"), to deal 12 | in the Software without restriction, including without limitation the rights 13 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 14 | copies of the Software, and to permit persons to whom the Software is 15 | furnished to do so, subject to the following conditions: 16 | 17 | The above copyright notice and this permission notice shall be included in 18 | all copies or substantial portions of the Software. 19 | 20 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 21 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 22 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 23 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 24 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 25 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 26 | THE SOFTWARE. 27 | 28 | 29 | 30 | Generated by CocoaPods - http://cocoapods.org 31 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-SCNavigationControlCenter_Tests/Pods-SCNavigationControlCenter_Tests-acknowledgements.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PreferenceSpecifiers 6 | 7 | 8 | FooterText 9 | This application makes use of the following third party libraries: 10 | Title 11 | Acknowledgements 12 | Type 13 | PSGroupSpecifier 14 | 15 | 16 | FooterText 17 | Copyright (c) 2015 Sergio Chan <yuheng9211@qq.com> 18 | The MIT License (MIT) 19 | 20 | 21 | Permission is hereby granted, free of charge, to any person obtaining a copy 22 | of this software and associated documentation files (the "Software"), to deal 23 | in the Software without restriction, including without limitation the rights 24 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 25 | copies of the Software, and to permit persons to whom the Software is 26 | furnished to do so, subject to the following conditions: 27 | 28 | The above copyright notice and this permission notice shall be included in 29 | all copies or substantial portions of the Software. 30 | 31 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 32 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 33 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 34 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 35 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 36 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 37 | THE SOFTWARE. 38 | 39 | 40 | 41 | Title 42 | SCNavigationControlCenter 43 | Type 44 | PSGroupSpecifier 45 | 46 | 47 | FooterText 48 | Generated by CocoaPods - http://cocoapods.org 49 | Title 50 | 51 | Type 52 | PSGroupSpecifier 53 | 54 | 55 | StringsTable 56 | Acknowledgements 57 | Title 58 | Acknowledgements 59 | 60 | 61 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-SCNavigationControlCenter_Tests/Pods-SCNavigationControlCenter_Tests-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_SCNavigationControlCenter_Tests : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_SCNavigationControlCenter_Tests 5 | @end 6 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-SCNavigationControlCenter_Tests/Pods-SCNavigationControlCenter_Tests-frameworks.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | 4 | echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 5 | mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 6 | 7 | SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" 8 | 9 | install_framework() 10 | { 11 | if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then 12 | local source="${BUILT_PRODUCTS_DIR}/$1" 13 | elif [ -r "${BUILT_PRODUCTS_DIR}/$(basename "$1")" ]; then 14 | local source="${BUILT_PRODUCTS_DIR}/$(basename "$1")" 15 | elif [ -r "$1" ]; then 16 | local source="$1" 17 | fi 18 | 19 | local destination="${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 20 | 21 | if [ -L "${source}" ]; then 22 | echo "Symlinked..." 23 | source="$(readlink "${source}")" 24 | fi 25 | 26 | # use filter instead of exclude so missing patterns dont' throw errors 27 | echo "rsync -av --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"" 28 | rsync -av --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}" 29 | 30 | local basename 31 | basename="$(basename -s .framework "$1")" 32 | binary="${destination}/${basename}.framework/${basename}" 33 | if ! [ -r "$binary" ]; then 34 | binary="${destination}/${basename}" 35 | fi 36 | 37 | # Strip invalid architectures so "fat" simulator / device frameworks work on device 38 | if [[ "$(file "$binary")" == *"dynamically linked shared library"* ]]; then 39 | strip_invalid_archs "$binary" 40 | fi 41 | 42 | # Resign the code if required by the build settings to avoid unstable apps 43 | code_sign_if_enabled "${destination}/$(basename "$1")" 44 | 45 | # Embed linked Swift runtime libraries. No longer necessary as of Xcode 7. 46 | if [ "${XCODE_VERSION_MAJOR}" -lt 7 ]; then 47 | local swift_runtime_libs 48 | swift_runtime_libs=$(xcrun otool -LX "$binary" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u && exit ${PIPESTATUS[0]}) 49 | for lib in $swift_runtime_libs; do 50 | echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\"" 51 | rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}" 52 | code_sign_if_enabled "${destination}/${lib}" 53 | done 54 | fi 55 | } 56 | 57 | # Signs a framework with the provided identity 58 | code_sign_if_enabled() { 59 | if [ -n "${EXPANDED_CODE_SIGN_IDENTITY}" -a "${CODE_SIGNING_REQUIRED}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then 60 | # Use the current code_sign_identitiy 61 | echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}" 62 | echo "/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} --preserve-metadata=identifier,entitlements \"$1\"" 63 | /usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} --preserve-metadata=identifier,entitlements "$1" 64 | fi 65 | } 66 | 67 | # Strip invalid architectures 68 | strip_invalid_archs() { 69 | binary="$1" 70 | # Get architectures for current file 71 | archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | rev)" 72 | stripped="" 73 | for arch in $archs; do 74 | if ! [[ "${VALID_ARCHS}" == *"$arch"* ]]; then 75 | # Strip non-valid architectures in-place 76 | lipo -remove "$arch" -output "$binary" "$binary" || exit 1 77 | stripped="$stripped $arch" 78 | fi 79 | done 80 | if [[ "$stripped" ]]; then 81 | echo "Stripped $binary of architectures:$stripped" 82 | fi 83 | } 84 | 85 | 86 | if [[ "$CONFIGURATION" == "Debug" ]]; then 87 | install_framework "Pods-SCNavigationControlCenter_Tests/SCNavigationControlCenter.framework" 88 | fi 89 | if [[ "$CONFIGURATION" == "Release" ]]; then 90 | install_framework "Pods-SCNavigationControlCenter_Tests/SCNavigationControlCenter.framework" 91 | fi 92 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-SCNavigationControlCenter_Tests/Pods-SCNavigationControlCenter_Tests-resources.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | 4 | mkdir -p "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 5 | 6 | RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt 7 | > "$RESOURCES_TO_COPY" 8 | 9 | XCASSET_FILES=() 10 | 11 | realpath() { 12 | DIRECTORY="$(cd "${1%/*}" && pwd)" 13 | FILENAME="${1##*/}" 14 | echo "$DIRECTORY/$FILENAME" 15 | } 16 | 17 | install_resource() 18 | { 19 | case $1 in 20 | *.storyboard) 21 | echo "ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .storyboard`.storyboardc ${PODS_ROOT}/$1 --sdk ${SDKROOT}" 22 | ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .storyboard`.storyboardc" "${PODS_ROOT}/$1" --sdk "${SDKROOT}" 23 | ;; 24 | *.xib) 25 | echo "ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .xib`.nib ${PODS_ROOT}/$1 --sdk ${SDKROOT}" 26 | ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .xib`.nib" "${PODS_ROOT}/$1" --sdk "${SDKROOT}" 27 | ;; 28 | *.framework) 29 | echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 30 | mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 31 | echo "rsync -av ${PODS_ROOT}/$1 ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 32 | rsync -av "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 33 | ;; 34 | *.xcdatamodel) 35 | echo "xcrun momc \"${PODS_ROOT}/$1\" \"${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1"`.mom\"" 36 | xcrun momc "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcdatamodel`.mom" 37 | ;; 38 | *.xcdatamodeld) 39 | echo "xcrun momc \"${PODS_ROOT}/$1\" \"${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcdatamodeld`.momd\"" 40 | xcrun momc "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcdatamodeld`.momd" 41 | ;; 42 | *.xcmappingmodel) 43 | echo "xcrun mapc \"${PODS_ROOT}/$1\" \"${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcmappingmodel`.cdm\"" 44 | xcrun mapc "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcmappingmodel`.cdm" 45 | ;; 46 | *.xcassets) 47 | ABSOLUTE_XCASSET_FILE=$(realpath "${PODS_ROOT}/$1") 48 | XCASSET_FILES+=("$ABSOLUTE_XCASSET_FILE") 49 | ;; 50 | /*) 51 | echo "$1" 52 | echo "$1" >> "$RESOURCES_TO_COPY" 53 | ;; 54 | *) 55 | echo "${PODS_ROOT}/$1" 56 | echo "${PODS_ROOT}/$1" >> "$RESOURCES_TO_COPY" 57 | ;; 58 | esac 59 | } 60 | 61 | mkdir -p "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 62 | rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 63 | if [[ "${ACTION}" == "install" ]] && [[ "${SKIP_INSTALL}" == "NO" ]]; then 64 | mkdir -p "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 65 | rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 66 | fi 67 | rm -f "$RESOURCES_TO_COPY" 68 | 69 | if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "$XCASSET_FILES" ] 70 | then 71 | case "${TARGETED_DEVICE_FAMILY}" in 72 | 1,2) 73 | TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone" 74 | ;; 75 | 1) 76 | TARGET_DEVICE_ARGS="--target-device iphone" 77 | ;; 78 | 2) 79 | TARGET_DEVICE_ARGS="--target-device ipad" 80 | ;; 81 | *) 82 | TARGET_DEVICE_ARGS="--target-device mac" 83 | ;; 84 | esac 85 | 86 | # Find all other xcassets (this unfortunately includes those of path pods and other targets). 87 | OTHER_XCASSETS=$(find "$PWD" -iname "*.xcassets" -type d) 88 | while read line; do 89 | if [[ $line != "`realpath $PODS_ROOT`*" ]]; then 90 | XCASSET_FILES+=("$line") 91 | fi 92 | done <<<"$OTHER_XCASSETS" 93 | 94 | printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${IPHONEOS_DEPLOYMENT_TARGET}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 95 | fi 96 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-SCNavigationControlCenter_Tests/Pods-SCNavigationControlCenter_Tests-umbrella.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | 4 | FOUNDATION_EXPORT double Pods_SCNavigationControlCenter_TestsVersionNumber; 5 | FOUNDATION_EXPORT const unsigned char Pods_SCNavigationControlCenter_TestsVersionString[]; 6 | 7 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-SCNavigationControlCenter_Tests/Pods-SCNavigationControlCenter_Tests.debug.xcconfig: -------------------------------------------------------------------------------- 1 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 2 | LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' 3 | OTHER_CFLAGS = $(inherited) -iquote "$CONFIGURATION_BUILD_DIR/SCNavigationControlCenter.framework/Headers" 4 | OTHER_LDFLAGS = $(inherited) -framework "SCNavigationControlCenter" 5 | PODS_FRAMEWORK_BUILD_PATH = $(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/Pods-SCNavigationControlCenter_Tests 6 | PODS_ROOT = ${SRCROOT}/Pods -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-SCNavigationControlCenter_Tests/Pods-SCNavigationControlCenter_Tests.modulemap: -------------------------------------------------------------------------------- 1 | framework module Pods_SCNavigationControlCenter_Tests { 2 | umbrella header "Pods-SCNavigationControlCenter_Tests-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-SCNavigationControlCenter_Tests/Pods-SCNavigationControlCenter_Tests.release.xcconfig: -------------------------------------------------------------------------------- 1 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 2 | LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' 3 | OTHER_CFLAGS = $(inherited) -iquote "$CONFIGURATION_BUILD_DIR/SCNavigationControlCenter.framework/Headers" 4 | OTHER_LDFLAGS = $(inherited) -framework "SCNavigationControlCenter" 5 | PODS_FRAMEWORK_BUILD_PATH = $(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/Pods-SCNavigationControlCenter_Tests 6 | PODS_ROOT = ${SRCROOT}/Pods -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/SCNavigationControlCenter/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 0.1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/SCNavigationControlCenter/SCNavigationControlCenter-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_SCNavigationControlCenter : NSObject 3 | @end 4 | @implementation PodsDummy_SCNavigationControlCenter 5 | @end 6 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/SCNavigationControlCenter/SCNavigationControlCenter-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #endif 4 | 5 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/SCNavigationControlCenter/SCNavigationControlCenter-umbrella.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | #import "iCarousel.h" 4 | #import "SCNavigationControlCenter.h" 5 | #import "UIViewExt.h" 6 | 7 | FOUNDATION_EXPORT double SCNavigationControlCenterVersionNumber; 8 | FOUNDATION_EXPORT const unsigned char SCNavigationControlCenterVersionString[]; 9 | 10 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/SCNavigationControlCenter/SCNavigationControlCenter.modulemap: -------------------------------------------------------------------------------- 1 | framework module SCNavigationControlCenter { 2 | umbrella header "SCNavigationControlCenter-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/SCNavigationControlCenter/SCNavigationControlCenter.xcconfig: -------------------------------------------------------------------------------- 1 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 2 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/SCNavigationControlCenter" "${PODS_ROOT}/Headers/Public" 3 | PODS_ROOT = ${SRCROOT} 4 | SKIP_INSTALL = YES -------------------------------------------------------------------------------- /Example/SCNavigationControlCenter.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 46; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | 45DB6A5A063EE9CB7E69E53A /* Pods_SCNavigationControlCenter_Tests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F4A06FD37A8B81EC4671FBEB /* Pods_SCNavigationControlCenter_Tests.framework */; }; 11 | 5039735F1C116A6800C26369 /* PictureViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 503973581C116A6800C26369 /* PictureViewController.m */; }; 12 | 503973601C116A6800C26369 /* SCNavigationController.m in Sources */ = {isa = PBXBuildFile; fileRef = 5039735A1C116A6800C26369 /* SCNavigationController.m */; }; 13 | 503973611C116A6800C26369 /* TabAViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 5039735C1C116A6800C26369 /* TabAViewController.m */; }; 14 | 503973621C116A6800C26369 /* TabBViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 5039735E1C116A6800C26369 /* TabBViewController.m */; }; 15 | 5039736B1C116A7D00C26369 /* 1.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 503973641C116A7D00C26369 /* 1.jpg */; }; 16 | 5039736C1C116A7D00C26369 /* 2.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 503973651C116A7D00C26369 /* 2.jpg */; }; 17 | 5039736D1C116A7D00C26369 /* 3.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 503973661C116A7D00C26369 /* 3.jpg */; }; 18 | 5039736E1C116A7D00C26369 /* 4.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 503973671C116A7D00C26369 /* 4.jpg */; }; 19 | 5039736F1C116A7D00C26369 /* 5.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 503973681C116A7D00C26369 /* 5.jpg */; }; 20 | 503973701C116A7D00C26369 /* 6.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 503973691C116A7D00C26369 /* 6.jpg */; }; 21 | 503973711C116A7D00C26369 /* 7.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 5039736A1C116A7D00C26369 /* 7.jpg */; }; 22 | 6003F58E195388D20070C39A /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6003F58D195388D20070C39A /* Foundation.framework */; }; 23 | 6003F590195388D20070C39A /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6003F58F195388D20070C39A /* CoreGraphics.framework */; }; 24 | 6003F592195388D20070C39A /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6003F591195388D20070C39A /* UIKit.framework */; }; 25 | 6003F598195388D20070C39A /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 6003F596195388D20070C39A /* InfoPlist.strings */; }; 26 | 6003F59A195388D20070C39A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 6003F599195388D20070C39A /* main.m */; }; 27 | 6003F59E195388D20070C39A /* SCAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 6003F59D195388D20070C39A /* SCAppDelegate.m */; }; 28 | 6003F5A9195388D20070C39A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 6003F5A8195388D20070C39A /* Images.xcassets */; }; 29 | 6003F5B0195388D20070C39A /* XCTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6003F5AF195388D20070C39A /* XCTest.framework */; }; 30 | 6003F5B1195388D20070C39A /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6003F58D195388D20070C39A /* Foundation.framework */; }; 31 | 6003F5B2195388D20070C39A /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6003F591195388D20070C39A /* UIKit.framework */; }; 32 | 6003F5BA195388D20070C39A /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 6003F5B8195388D20070C39A /* InfoPlist.strings */; }; 33 | 6003F5BC195388D20070C39A /* Tests.m in Sources */ = {isa = PBXBuildFile; fileRef = 6003F5BB195388D20070C39A /* Tests.m */; }; 34 | 873B8AEB1B1F5CCA007FD442 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 873B8AEA1B1F5CCA007FD442 /* Main.storyboard */; }; 35 | CA2CD5F0976A9671255F8564 /* Pods_SCNavigationControlCenter_Example.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 50A7AA5E2FEC5BAC94CA8019 /* Pods_SCNavigationControlCenter_Example.framework */; }; 36 | /* End PBXBuildFile section */ 37 | 38 | /* Begin PBXContainerItemProxy section */ 39 | 6003F5B3195388D20070C39A /* PBXContainerItemProxy */ = { 40 | isa = PBXContainerItemProxy; 41 | containerPortal = 6003F582195388D10070C39A /* Project object */; 42 | proxyType = 1; 43 | remoteGlobalIDString = 6003F589195388D20070C39A; 44 | remoteInfo = SCNavigationControlCenter; 45 | }; 46 | /* End PBXContainerItemProxy section */ 47 | 48 | /* Begin PBXFileReference section */ 49 | 2D6D35C8B07B5350B56D6BBC /* Pods-SCNavigationControlCenter_Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SCNavigationControlCenter_Tests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-SCNavigationControlCenter_Tests/Pods-SCNavigationControlCenter_Tests.debug.xcconfig"; sourceTree = ""; }; 50 | 503973571C116A6800C26369 /* PictureViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PictureViewController.h; sourceTree = ""; }; 51 | 503973581C116A6800C26369 /* PictureViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PictureViewController.m; sourceTree = ""; }; 52 | 503973591C116A6800C26369 /* SCNavigationController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SCNavigationController.h; sourceTree = ""; }; 53 | 5039735A1C116A6800C26369 /* SCNavigationController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SCNavigationController.m; sourceTree = ""; }; 54 | 5039735B1C116A6800C26369 /* TabAViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TabAViewController.h; sourceTree = ""; }; 55 | 5039735C1C116A6800C26369 /* TabAViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TabAViewController.m; sourceTree = ""; }; 56 | 5039735D1C116A6800C26369 /* TabBViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TabBViewController.h; sourceTree = ""; }; 57 | 5039735E1C116A6800C26369 /* TabBViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TabBViewController.m; sourceTree = ""; }; 58 | 503973641C116A7D00C26369 /* 1.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = 1.jpg; sourceTree = ""; }; 59 | 503973651C116A7D00C26369 /* 2.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = 2.jpg; sourceTree = ""; }; 60 | 503973661C116A7D00C26369 /* 3.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = 3.jpg; sourceTree = ""; }; 61 | 503973671C116A7D00C26369 /* 4.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = 4.jpg; sourceTree = ""; }; 62 | 503973681C116A7D00C26369 /* 5.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = 5.jpg; sourceTree = ""; }; 63 | 503973691C116A7D00C26369 /* 6.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = 6.jpg; sourceTree = ""; }; 64 | 5039736A1C116A7D00C26369 /* 7.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = 7.jpg; sourceTree = ""; }; 65 | 50A7AA5E2FEC5BAC94CA8019 /* Pods_SCNavigationControlCenter_Example.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_SCNavigationControlCenter_Example.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 66 | 53F9A0CC3F3A32C957CEF22A /* Pods-SCNavigationControlCenter_Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SCNavigationControlCenter_Example.release.xcconfig"; path = "Pods/Target Support Files/Pods-SCNavigationControlCenter_Example/Pods-SCNavigationControlCenter_Example.release.xcconfig"; sourceTree = ""; }; 67 | 6003F58A195388D20070C39A /* SCNavigationControlCenter_Example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = SCNavigationControlCenter_Example.app; sourceTree = BUILT_PRODUCTS_DIR; }; 68 | 6003F58D195388D20070C39A /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; 69 | 6003F58F195388D20070C39A /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; 70 | 6003F591195388D20070C39A /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; 71 | 6003F595195388D20070C39A /* SCNavigationControlCenter-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "SCNavigationControlCenter-Info.plist"; sourceTree = ""; }; 72 | 6003F597195388D20070C39A /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; 73 | 6003F599195388D20070C39A /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; 74 | 6003F59B195388D20070C39A /* SCNavigationControlCenter-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "SCNavigationControlCenter-Prefix.pch"; sourceTree = ""; }; 75 | 6003F59C195388D20070C39A /* SCAppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SCAppDelegate.h; sourceTree = ""; }; 76 | 6003F59D195388D20070C39A /* SCAppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SCAppDelegate.m; sourceTree = ""; }; 77 | 6003F5A8195388D20070C39A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = ""; }; 78 | 6003F5AE195388D20070C39A /* SCNavigationControlCenter_Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = SCNavigationControlCenter_Tests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 79 | 6003F5AF195388D20070C39A /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = Library/Frameworks/XCTest.framework; sourceTree = DEVELOPER_DIR; }; 80 | 6003F5B7195388D20070C39A /* Tests-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "Tests-Info.plist"; sourceTree = ""; }; 81 | 6003F5B9195388D20070C39A /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; 82 | 6003F5BB195388D20070C39A /* Tests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = Tests.m; sourceTree = ""; }; 83 | 606FC2411953D9B200FFA9A0 /* Tests-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Tests-Prefix.pch"; sourceTree = ""; }; 84 | 65BF2A616CFCDA044AD08C00 /* SCNavigationControlCenter.podspec */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; name = SCNavigationControlCenter.podspec; path = ../SCNavigationControlCenter.podspec; sourceTree = ""; }; 85 | 873B8AEA1B1F5CCA007FD442 /* Main.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = Main.storyboard; sourceTree = ""; }; 86 | C0D4EBBD41001CCA1934C555 /* Pods-SCNavigationControlCenter_Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SCNavigationControlCenter_Example.debug.xcconfig"; path = "Pods/Target Support Files/Pods-SCNavigationControlCenter_Example/Pods-SCNavigationControlCenter_Example.debug.xcconfig"; sourceTree = ""; }; 87 | D569B63A6E34DC445EEAB7E5 /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; name = LICENSE; path = ../LICENSE; sourceTree = ""; }; 88 | D9B92D2F9DBC8D5D0F5C9817 /* Pods-SCNavigationControlCenter_Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SCNavigationControlCenter_Tests.release.xcconfig"; path = "Pods/Target Support Files/Pods-SCNavigationControlCenter_Tests/Pods-SCNavigationControlCenter_Tests.release.xcconfig"; sourceTree = ""; }; 89 | E9DD79C2C66A68E764166FA9 /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = net.daringfireball.markdown; name = README.md; path = ../README.md; sourceTree = ""; }; 90 | F4A06FD37A8B81EC4671FBEB /* Pods_SCNavigationControlCenter_Tests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_SCNavigationControlCenter_Tests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 91 | /* End PBXFileReference section */ 92 | 93 | /* Begin PBXFrameworksBuildPhase section */ 94 | 6003F587195388D20070C39A /* Frameworks */ = { 95 | isa = PBXFrameworksBuildPhase; 96 | buildActionMask = 2147483647; 97 | files = ( 98 | 6003F590195388D20070C39A /* CoreGraphics.framework in Frameworks */, 99 | 6003F592195388D20070C39A /* UIKit.framework in Frameworks */, 100 | 6003F58E195388D20070C39A /* Foundation.framework in Frameworks */, 101 | CA2CD5F0976A9671255F8564 /* Pods_SCNavigationControlCenter_Example.framework in Frameworks */, 102 | ); 103 | runOnlyForDeploymentPostprocessing = 0; 104 | }; 105 | 6003F5AB195388D20070C39A /* Frameworks */ = { 106 | isa = PBXFrameworksBuildPhase; 107 | buildActionMask = 2147483647; 108 | files = ( 109 | 6003F5B0195388D20070C39A /* XCTest.framework in Frameworks */, 110 | 6003F5B2195388D20070C39A /* UIKit.framework in Frameworks */, 111 | 6003F5B1195388D20070C39A /* Foundation.framework in Frameworks */, 112 | 45DB6A5A063EE9CB7E69E53A /* Pods_SCNavigationControlCenter_Tests.framework in Frameworks */, 113 | ); 114 | runOnlyForDeploymentPostprocessing = 0; 115 | }; 116 | /* End PBXFrameworksBuildPhase section */ 117 | 118 | /* Begin PBXGroup section */ 119 | 503973561C116A3600C26369 /* ViewController */ = { 120 | isa = PBXGroup; 121 | children = ( 122 | 503973571C116A6800C26369 /* PictureViewController.h */, 123 | 503973581C116A6800C26369 /* PictureViewController.m */, 124 | 503973591C116A6800C26369 /* SCNavigationController.h */, 125 | 5039735A1C116A6800C26369 /* SCNavigationController.m */, 126 | 5039735B1C116A6800C26369 /* TabAViewController.h */, 127 | 5039735C1C116A6800C26369 /* TabAViewController.m */, 128 | 5039735D1C116A6800C26369 /* TabBViewController.h */, 129 | 5039735E1C116A6800C26369 /* TabBViewController.m */, 130 | ); 131 | name = ViewController; 132 | sourceTree = ""; 133 | }; 134 | 503973631C116A6C00C26369 /* resource */ = { 135 | isa = PBXGroup; 136 | children = ( 137 | 503973641C116A7D00C26369 /* 1.jpg */, 138 | 503973651C116A7D00C26369 /* 2.jpg */, 139 | 503973661C116A7D00C26369 /* 3.jpg */, 140 | 503973671C116A7D00C26369 /* 4.jpg */, 141 | 503973681C116A7D00C26369 /* 5.jpg */, 142 | 503973691C116A7D00C26369 /* 6.jpg */, 143 | 5039736A1C116A7D00C26369 /* 7.jpg */, 144 | ); 145 | name = resource; 146 | sourceTree = ""; 147 | }; 148 | 6003F581195388D10070C39A = { 149 | isa = PBXGroup; 150 | children = ( 151 | 60FF7A9C1954A5C5007DD14C /* Podspec Metadata */, 152 | 6003F593195388D20070C39A /* Example for SCNavigationControlCenter */, 153 | 6003F5B5195388D20070C39A /* Tests */, 154 | 6003F58C195388D20070C39A /* Frameworks */, 155 | 6003F58B195388D20070C39A /* Products */, 156 | D7599C387926758AA740E825 /* Pods */, 157 | ); 158 | sourceTree = ""; 159 | }; 160 | 6003F58B195388D20070C39A /* Products */ = { 161 | isa = PBXGroup; 162 | children = ( 163 | 6003F58A195388D20070C39A /* SCNavigationControlCenter_Example.app */, 164 | 6003F5AE195388D20070C39A /* SCNavigationControlCenter_Tests.xctest */, 165 | ); 166 | name = Products; 167 | sourceTree = ""; 168 | }; 169 | 6003F58C195388D20070C39A /* Frameworks */ = { 170 | isa = PBXGroup; 171 | children = ( 172 | 6003F58D195388D20070C39A /* Foundation.framework */, 173 | 6003F58F195388D20070C39A /* CoreGraphics.framework */, 174 | 6003F591195388D20070C39A /* UIKit.framework */, 175 | 6003F5AF195388D20070C39A /* XCTest.framework */, 176 | 50A7AA5E2FEC5BAC94CA8019 /* Pods_SCNavigationControlCenter_Example.framework */, 177 | F4A06FD37A8B81EC4671FBEB /* Pods_SCNavigationControlCenter_Tests.framework */, 178 | ); 179 | name = Frameworks; 180 | sourceTree = ""; 181 | }; 182 | 6003F593195388D20070C39A /* Example for SCNavigationControlCenter */ = { 183 | isa = PBXGroup; 184 | children = ( 185 | 503973561C116A3600C26369 /* ViewController */, 186 | 6003F594195388D20070C39A /* Supporting Files */, 187 | ); 188 | name = "Example for SCNavigationControlCenter"; 189 | path = SCNavigationControlCenter; 190 | sourceTree = ""; 191 | }; 192 | 6003F594195388D20070C39A /* Supporting Files */ = { 193 | isa = PBXGroup; 194 | children = ( 195 | 503973631C116A6C00C26369 /* resource */, 196 | 873B8AEA1B1F5CCA007FD442 /* Main.storyboard */, 197 | 6003F5A8195388D20070C39A /* Images.xcassets */, 198 | 6003F59C195388D20070C39A /* SCAppDelegate.h */, 199 | 6003F59D195388D20070C39A /* SCAppDelegate.m */, 200 | 6003F595195388D20070C39A /* SCNavigationControlCenter-Info.plist */, 201 | 6003F596195388D20070C39A /* InfoPlist.strings */, 202 | 6003F599195388D20070C39A /* main.m */, 203 | 6003F59B195388D20070C39A /* SCNavigationControlCenter-Prefix.pch */, 204 | ); 205 | name = "Supporting Files"; 206 | sourceTree = ""; 207 | }; 208 | 6003F5B5195388D20070C39A /* Tests */ = { 209 | isa = PBXGroup; 210 | children = ( 211 | 6003F5BB195388D20070C39A /* Tests.m */, 212 | 6003F5B6195388D20070C39A /* Supporting Files */, 213 | ); 214 | path = Tests; 215 | sourceTree = ""; 216 | }; 217 | 6003F5B6195388D20070C39A /* Supporting Files */ = { 218 | isa = PBXGroup; 219 | children = ( 220 | 6003F5B7195388D20070C39A /* Tests-Info.plist */, 221 | 6003F5B8195388D20070C39A /* InfoPlist.strings */, 222 | 606FC2411953D9B200FFA9A0 /* Tests-Prefix.pch */, 223 | ); 224 | name = "Supporting Files"; 225 | sourceTree = ""; 226 | }; 227 | 60FF7A9C1954A5C5007DD14C /* Podspec Metadata */ = { 228 | isa = PBXGroup; 229 | children = ( 230 | 65BF2A616CFCDA044AD08C00 /* SCNavigationControlCenter.podspec */, 231 | E9DD79C2C66A68E764166FA9 /* README.md */, 232 | D569B63A6E34DC445EEAB7E5 /* LICENSE */, 233 | ); 234 | name = "Podspec Metadata"; 235 | sourceTree = ""; 236 | }; 237 | D7599C387926758AA740E825 /* Pods */ = { 238 | isa = PBXGroup; 239 | children = ( 240 | C0D4EBBD41001CCA1934C555 /* Pods-SCNavigationControlCenter_Example.debug.xcconfig */, 241 | 53F9A0CC3F3A32C957CEF22A /* Pods-SCNavigationControlCenter_Example.release.xcconfig */, 242 | 2D6D35C8B07B5350B56D6BBC /* Pods-SCNavigationControlCenter_Tests.debug.xcconfig */, 243 | D9B92D2F9DBC8D5D0F5C9817 /* Pods-SCNavigationControlCenter_Tests.release.xcconfig */, 244 | ); 245 | name = Pods; 246 | sourceTree = ""; 247 | }; 248 | /* End PBXGroup section */ 249 | 250 | /* Begin PBXNativeTarget section */ 251 | 6003F589195388D20070C39A /* SCNavigationControlCenter_Example */ = { 252 | isa = PBXNativeTarget; 253 | buildConfigurationList = 6003F5BF195388D20070C39A /* Build configuration list for PBXNativeTarget "SCNavigationControlCenter_Example" */; 254 | buildPhases = ( 255 | 8C74E10D0467326BFDF33C2E /* Check Pods Manifest.lock */, 256 | 6003F586195388D20070C39A /* Sources */, 257 | 6003F587195388D20070C39A /* Frameworks */, 258 | 6003F588195388D20070C39A /* Resources */, 259 | 4173A045341FBE55C2B9B73A /* Embed Pods Frameworks */, 260 | 306BAA57698154E3A6C0A10C /* Copy Pods Resources */, 261 | ); 262 | buildRules = ( 263 | ); 264 | dependencies = ( 265 | ); 266 | name = SCNavigationControlCenter_Example; 267 | productName = SCNavigationControlCenter; 268 | productReference = 6003F58A195388D20070C39A /* SCNavigationControlCenter_Example.app */; 269 | productType = "com.apple.product-type.application"; 270 | }; 271 | 6003F5AD195388D20070C39A /* SCNavigationControlCenter_Tests */ = { 272 | isa = PBXNativeTarget; 273 | buildConfigurationList = 6003F5C2195388D20070C39A /* Build configuration list for PBXNativeTarget "SCNavigationControlCenter_Tests" */; 274 | buildPhases = ( 275 | 3F8A9B21A62552E2E5E74731 /* Check Pods Manifest.lock */, 276 | 6003F5AA195388D20070C39A /* Sources */, 277 | 6003F5AB195388D20070C39A /* Frameworks */, 278 | 6003F5AC195388D20070C39A /* Resources */, 279 | 46B5F5E712F1341D558A70E8 /* Embed Pods Frameworks */, 280 | 17E9BD116E3B2460B6A58390 /* Copy Pods Resources */, 281 | ); 282 | buildRules = ( 283 | ); 284 | dependencies = ( 285 | 6003F5B4195388D20070C39A /* PBXTargetDependency */, 286 | ); 287 | name = SCNavigationControlCenter_Tests; 288 | productName = SCNavigationControlCenterTests; 289 | productReference = 6003F5AE195388D20070C39A /* SCNavigationControlCenter_Tests.xctest */; 290 | productType = "com.apple.product-type.bundle.unit-test"; 291 | }; 292 | /* End PBXNativeTarget section */ 293 | 294 | /* Begin PBXProject section */ 295 | 6003F582195388D10070C39A /* Project object */ = { 296 | isa = PBXProject; 297 | attributes = { 298 | CLASSPREFIX = SC; 299 | LastUpgradeCheck = 0710; 300 | ORGANIZATIONNAME = "Sergio Chan"; 301 | TargetAttributes = { 302 | 6003F5AD195388D20070C39A = { 303 | TestTargetID = 6003F589195388D20070C39A; 304 | }; 305 | }; 306 | }; 307 | buildConfigurationList = 6003F585195388D10070C39A /* Build configuration list for PBXProject "SCNavigationControlCenter" */; 308 | compatibilityVersion = "Xcode 3.2"; 309 | developmentRegion = English; 310 | hasScannedForEncodings = 0; 311 | knownRegions = ( 312 | en, 313 | Base, 314 | ); 315 | mainGroup = 6003F581195388D10070C39A; 316 | productRefGroup = 6003F58B195388D20070C39A /* Products */; 317 | projectDirPath = ""; 318 | projectRoot = ""; 319 | targets = ( 320 | 6003F589195388D20070C39A /* SCNavigationControlCenter_Example */, 321 | 6003F5AD195388D20070C39A /* SCNavigationControlCenter_Tests */, 322 | ); 323 | }; 324 | /* End PBXProject section */ 325 | 326 | /* Begin PBXResourcesBuildPhase section */ 327 | 6003F588195388D20070C39A /* Resources */ = { 328 | isa = PBXResourcesBuildPhase; 329 | buildActionMask = 2147483647; 330 | files = ( 331 | 503973701C116A7D00C26369 /* 6.jpg in Resources */, 332 | 873B8AEB1B1F5CCA007FD442 /* Main.storyboard in Resources */, 333 | 5039736F1C116A7D00C26369 /* 5.jpg in Resources */, 334 | 5039736E1C116A7D00C26369 /* 4.jpg in Resources */, 335 | 5039736B1C116A7D00C26369 /* 1.jpg in Resources */, 336 | 5039736C1C116A7D00C26369 /* 2.jpg in Resources */, 337 | 5039736D1C116A7D00C26369 /* 3.jpg in Resources */, 338 | 503973711C116A7D00C26369 /* 7.jpg in Resources */, 339 | 6003F5A9195388D20070C39A /* Images.xcassets in Resources */, 340 | 6003F598195388D20070C39A /* InfoPlist.strings in Resources */, 341 | ); 342 | runOnlyForDeploymentPostprocessing = 0; 343 | }; 344 | 6003F5AC195388D20070C39A /* Resources */ = { 345 | isa = PBXResourcesBuildPhase; 346 | buildActionMask = 2147483647; 347 | files = ( 348 | 6003F5BA195388D20070C39A /* InfoPlist.strings in Resources */, 349 | ); 350 | runOnlyForDeploymentPostprocessing = 0; 351 | }; 352 | /* End PBXResourcesBuildPhase section */ 353 | 354 | /* Begin PBXShellScriptBuildPhase section */ 355 | 17E9BD116E3B2460B6A58390 /* Copy Pods Resources */ = { 356 | isa = PBXShellScriptBuildPhase; 357 | buildActionMask = 2147483647; 358 | files = ( 359 | ); 360 | inputPaths = ( 361 | ); 362 | name = "Copy Pods Resources"; 363 | outputPaths = ( 364 | ); 365 | runOnlyForDeploymentPostprocessing = 0; 366 | shellPath = /bin/sh; 367 | shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-SCNavigationControlCenter_Tests/Pods-SCNavigationControlCenter_Tests-resources.sh\"\n"; 368 | showEnvVarsInLog = 0; 369 | }; 370 | 306BAA57698154E3A6C0A10C /* Copy Pods Resources */ = { 371 | isa = PBXShellScriptBuildPhase; 372 | buildActionMask = 2147483647; 373 | files = ( 374 | ); 375 | inputPaths = ( 376 | ); 377 | name = "Copy Pods Resources"; 378 | outputPaths = ( 379 | ); 380 | runOnlyForDeploymentPostprocessing = 0; 381 | shellPath = /bin/sh; 382 | shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-SCNavigationControlCenter_Example/Pods-SCNavigationControlCenter_Example-resources.sh\"\n"; 383 | showEnvVarsInLog = 0; 384 | }; 385 | 3F8A9B21A62552E2E5E74731 /* Check Pods Manifest.lock */ = { 386 | isa = PBXShellScriptBuildPhase; 387 | buildActionMask = 2147483647; 388 | files = ( 389 | ); 390 | inputPaths = ( 391 | ); 392 | name = "Check Pods Manifest.lock"; 393 | outputPaths = ( 394 | ); 395 | runOnlyForDeploymentPostprocessing = 0; 396 | shellPath = /bin/sh; 397 | shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n"; 398 | showEnvVarsInLog = 0; 399 | }; 400 | 4173A045341FBE55C2B9B73A /* Embed Pods Frameworks */ = { 401 | isa = PBXShellScriptBuildPhase; 402 | buildActionMask = 2147483647; 403 | files = ( 404 | ); 405 | inputPaths = ( 406 | ); 407 | name = "Embed Pods Frameworks"; 408 | outputPaths = ( 409 | ); 410 | runOnlyForDeploymentPostprocessing = 0; 411 | shellPath = /bin/sh; 412 | shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-SCNavigationControlCenter_Example/Pods-SCNavigationControlCenter_Example-frameworks.sh\"\n"; 413 | showEnvVarsInLog = 0; 414 | }; 415 | 46B5F5E712F1341D558A70E8 /* Embed Pods Frameworks */ = { 416 | isa = PBXShellScriptBuildPhase; 417 | buildActionMask = 2147483647; 418 | files = ( 419 | ); 420 | inputPaths = ( 421 | ); 422 | name = "Embed Pods Frameworks"; 423 | outputPaths = ( 424 | ); 425 | runOnlyForDeploymentPostprocessing = 0; 426 | shellPath = /bin/sh; 427 | shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-SCNavigationControlCenter_Tests/Pods-SCNavigationControlCenter_Tests-frameworks.sh\"\n"; 428 | showEnvVarsInLog = 0; 429 | }; 430 | 8C74E10D0467326BFDF33C2E /* Check Pods Manifest.lock */ = { 431 | isa = PBXShellScriptBuildPhase; 432 | buildActionMask = 2147483647; 433 | files = ( 434 | ); 435 | inputPaths = ( 436 | ); 437 | name = "Check Pods Manifest.lock"; 438 | outputPaths = ( 439 | ); 440 | runOnlyForDeploymentPostprocessing = 0; 441 | shellPath = /bin/sh; 442 | shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n"; 443 | showEnvVarsInLog = 0; 444 | }; 445 | /* End PBXShellScriptBuildPhase section */ 446 | 447 | /* Begin PBXSourcesBuildPhase section */ 448 | 6003F586195388D20070C39A /* Sources */ = { 449 | isa = PBXSourcesBuildPhase; 450 | buildActionMask = 2147483647; 451 | files = ( 452 | 6003F59E195388D20070C39A /* SCAppDelegate.m in Sources */, 453 | 503973621C116A6800C26369 /* TabBViewController.m in Sources */, 454 | 503973611C116A6800C26369 /* TabAViewController.m in Sources */, 455 | 503973601C116A6800C26369 /* SCNavigationController.m in Sources */, 456 | 5039735F1C116A6800C26369 /* PictureViewController.m in Sources */, 457 | 6003F59A195388D20070C39A /* main.m in Sources */, 458 | ); 459 | runOnlyForDeploymentPostprocessing = 0; 460 | }; 461 | 6003F5AA195388D20070C39A /* Sources */ = { 462 | isa = PBXSourcesBuildPhase; 463 | buildActionMask = 2147483647; 464 | files = ( 465 | 6003F5BC195388D20070C39A /* Tests.m in Sources */, 466 | ); 467 | runOnlyForDeploymentPostprocessing = 0; 468 | }; 469 | /* End PBXSourcesBuildPhase section */ 470 | 471 | /* Begin PBXTargetDependency section */ 472 | 6003F5B4195388D20070C39A /* PBXTargetDependency */ = { 473 | isa = PBXTargetDependency; 474 | target = 6003F589195388D20070C39A /* SCNavigationControlCenter_Example */; 475 | targetProxy = 6003F5B3195388D20070C39A /* PBXContainerItemProxy */; 476 | }; 477 | /* End PBXTargetDependency section */ 478 | 479 | /* Begin PBXVariantGroup section */ 480 | 6003F596195388D20070C39A /* InfoPlist.strings */ = { 481 | isa = PBXVariantGroup; 482 | children = ( 483 | 6003F597195388D20070C39A /* en */, 484 | ); 485 | name = InfoPlist.strings; 486 | sourceTree = ""; 487 | }; 488 | 6003F5B8195388D20070C39A /* InfoPlist.strings */ = { 489 | isa = PBXVariantGroup; 490 | children = ( 491 | 6003F5B9195388D20070C39A /* en */, 492 | ); 493 | name = InfoPlist.strings; 494 | sourceTree = ""; 495 | }; 496 | /* End PBXVariantGroup section */ 497 | 498 | /* Begin XCBuildConfiguration section */ 499 | 6003F5BD195388D20070C39A /* Debug */ = { 500 | isa = XCBuildConfiguration; 501 | buildSettings = { 502 | ALWAYS_SEARCH_USER_PATHS = NO; 503 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 504 | CLANG_CXX_LIBRARY = "libc++"; 505 | CLANG_ENABLE_MODULES = YES; 506 | CLANG_ENABLE_OBJC_ARC = YES; 507 | CLANG_WARN_BOOL_CONVERSION = YES; 508 | CLANG_WARN_CONSTANT_CONVERSION = YES; 509 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 510 | CLANG_WARN_EMPTY_BODY = YES; 511 | CLANG_WARN_ENUM_CONVERSION = YES; 512 | CLANG_WARN_INT_CONVERSION = YES; 513 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 514 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 515 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 516 | COPY_PHASE_STRIP = NO; 517 | ENABLE_TESTABILITY = YES; 518 | GCC_C_LANGUAGE_STANDARD = gnu99; 519 | GCC_DYNAMIC_NO_PIC = NO; 520 | GCC_OPTIMIZATION_LEVEL = 0; 521 | GCC_PREPROCESSOR_DEFINITIONS = ( 522 | "DEBUG=1", 523 | "$(inherited)", 524 | ); 525 | GCC_SYMBOLS_PRIVATE_EXTERN = NO; 526 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 527 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 528 | GCC_WARN_UNDECLARED_SELECTOR = YES; 529 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 530 | GCC_WARN_UNUSED_FUNCTION = YES; 531 | GCC_WARN_UNUSED_VARIABLE = YES; 532 | IPHONEOS_DEPLOYMENT_TARGET = 7.1; 533 | ONLY_ACTIVE_ARCH = YES; 534 | SDKROOT = iphoneos; 535 | TARGETED_DEVICE_FAMILY = "1,2"; 536 | }; 537 | name = Debug; 538 | }; 539 | 6003F5BE195388D20070C39A /* Release */ = { 540 | isa = XCBuildConfiguration; 541 | buildSettings = { 542 | ALWAYS_SEARCH_USER_PATHS = NO; 543 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 544 | CLANG_CXX_LIBRARY = "libc++"; 545 | CLANG_ENABLE_MODULES = YES; 546 | CLANG_ENABLE_OBJC_ARC = YES; 547 | CLANG_WARN_BOOL_CONVERSION = YES; 548 | CLANG_WARN_CONSTANT_CONVERSION = YES; 549 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 550 | CLANG_WARN_EMPTY_BODY = YES; 551 | CLANG_WARN_ENUM_CONVERSION = YES; 552 | CLANG_WARN_INT_CONVERSION = YES; 553 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 554 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 555 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 556 | COPY_PHASE_STRIP = YES; 557 | ENABLE_NS_ASSERTIONS = NO; 558 | GCC_C_LANGUAGE_STANDARD = gnu99; 559 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 560 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 561 | GCC_WARN_UNDECLARED_SELECTOR = YES; 562 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 563 | GCC_WARN_UNUSED_FUNCTION = YES; 564 | GCC_WARN_UNUSED_VARIABLE = YES; 565 | IPHONEOS_DEPLOYMENT_TARGET = 7.1; 566 | SDKROOT = iphoneos; 567 | TARGETED_DEVICE_FAMILY = "1,2"; 568 | VALIDATE_PRODUCT = YES; 569 | }; 570 | name = Release; 571 | }; 572 | 6003F5C0195388D20070C39A /* Debug */ = { 573 | isa = XCBuildConfiguration; 574 | baseConfigurationReference = C0D4EBBD41001CCA1934C555 /* Pods-SCNavigationControlCenter_Example.debug.xcconfig */; 575 | buildSettings = { 576 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 577 | GCC_PRECOMPILE_PREFIX_HEADER = YES; 578 | GCC_PREFIX_HEADER = "SCNavigationControlCenter/SCNavigationControlCenter-Prefix.pch"; 579 | INFOPLIST_FILE = "SCNavigationControlCenter/SCNavigationControlCenter-Info.plist"; 580 | IPHONEOS_DEPLOYMENT_TARGET = 8.0; 581 | MODULE_NAME = ExampleApp; 582 | PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.demo.${PRODUCT_NAME:rfc1034identifier}"; 583 | PRODUCT_NAME = "$(TARGET_NAME)"; 584 | TARGETED_DEVICE_FAMILY = 1; 585 | WRAPPER_EXTENSION = app; 586 | }; 587 | name = Debug; 588 | }; 589 | 6003F5C1195388D20070C39A /* Release */ = { 590 | isa = XCBuildConfiguration; 591 | baseConfigurationReference = 53F9A0CC3F3A32C957CEF22A /* Pods-SCNavigationControlCenter_Example.release.xcconfig */; 592 | buildSettings = { 593 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 594 | GCC_PRECOMPILE_PREFIX_HEADER = YES; 595 | GCC_PREFIX_HEADER = "SCNavigationControlCenter/SCNavigationControlCenter-Prefix.pch"; 596 | INFOPLIST_FILE = "SCNavigationControlCenter/SCNavigationControlCenter-Info.plist"; 597 | IPHONEOS_DEPLOYMENT_TARGET = 8.0; 598 | MODULE_NAME = ExampleApp; 599 | PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.demo.${PRODUCT_NAME:rfc1034identifier}"; 600 | PRODUCT_NAME = "$(TARGET_NAME)"; 601 | TARGETED_DEVICE_FAMILY = 1; 602 | WRAPPER_EXTENSION = app; 603 | }; 604 | name = Release; 605 | }; 606 | 6003F5C3195388D20070C39A /* Debug */ = { 607 | isa = XCBuildConfiguration; 608 | baseConfigurationReference = 2D6D35C8B07B5350B56D6BBC /* Pods-SCNavigationControlCenter_Tests.debug.xcconfig */; 609 | buildSettings = { 610 | BUNDLE_LOADER = "$(TEST_HOST)"; 611 | FRAMEWORK_SEARCH_PATHS = ( 612 | "$(SDKROOT)/Developer/Library/Frameworks", 613 | "$(inherited)", 614 | "$(DEVELOPER_FRAMEWORKS_DIR)", 615 | ); 616 | GCC_PRECOMPILE_PREFIX_HEADER = YES; 617 | GCC_PREFIX_HEADER = "Tests/Tests-Prefix.pch"; 618 | GCC_PREPROCESSOR_DEFINITIONS = ( 619 | "DEBUG=1", 620 | "$(inherited)", 621 | ); 622 | INFOPLIST_FILE = "Tests/Tests-Info.plist"; 623 | PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.demo.${PRODUCT_NAME:rfc1034identifier}"; 624 | PRODUCT_NAME = "$(TARGET_NAME)"; 625 | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/SCNavigationControlCenter_Example.app/SCNavigationControlCenter_Example"; 626 | WRAPPER_EXTENSION = xctest; 627 | }; 628 | name = Debug; 629 | }; 630 | 6003F5C4195388D20070C39A /* Release */ = { 631 | isa = XCBuildConfiguration; 632 | baseConfigurationReference = D9B92D2F9DBC8D5D0F5C9817 /* Pods-SCNavigationControlCenter_Tests.release.xcconfig */; 633 | buildSettings = { 634 | BUNDLE_LOADER = "$(TEST_HOST)"; 635 | FRAMEWORK_SEARCH_PATHS = ( 636 | "$(SDKROOT)/Developer/Library/Frameworks", 637 | "$(inherited)", 638 | "$(DEVELOPER_FRAMEWORKS_DIR)", 639 | ); 640 | GCC_PRECOMPILE_PREFIX_HEADER = YES; 641 | GCC_PREFIX_HEADER = "Tests/Tests-Prefix.pch"; 642 | INFOPLIST_FILE = "Tests/Tests-Info.plist"; 643 | PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.demo.${PRODUCT_NAME:rfc1034identifier}"; 644 | PRODUCT_NAME = "$(TARGET_NAME)"; 645 | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/SCNavigationControlCenter_Example.app/SCNavigationControlCenter_Example"; 646 | WRAPPER_EXTENSION = xctest; 647 | }; 648 | name = Release; 649 | }; 650 | /* End XCBuildConfiguration section */ 651 | 652 | /* Begin XCConfigurationList section */ 653 | 6003F585195388D10070C39A /* Build configuration list for PBXProject "SCNavigationControlCenter" */ = { 654 | isa = XCConfigurationList; 655 | buildConfigurations = ( 656 | 6003F5BD195388D20070C39A /* Debug */, 657 | 6003F5BE195388D20070C39A /* Release */, 658 | ); 659 | defaultConfigurationIsVisible = 0; 660 | defaultConfigurationName = Release; 661 | }; 662 | 6003F5BF195388D20070C39A /* Build configuration list for PBXNativeTarget "SCNavigationControlCenter_Example" */ = { 663 | isa = XCConfigurationList; 664 | buildConfigurations = ( 665 | 6003F5C0195388D20070C39A /* Debug */, 666 | 6003F5C1195388D20070C39A /* Release */, 667 | ); 668 | defaultConfigurationIsVisible = 0; 669 | defaultConfigurationName = Release; 670 | }; 671 | 6003F5C2195388D20070C39A /* Build configuration list for PBXNativeTarget "SCNavigationControlCenter_Tests" */ = { 672 | isa = XCConfigurationList; 673 | buildConfigurations = ( 674 | 6003F5C3195388D20070C39A /* Debug */, 675 | 6003F5C4195388D20070C39A /* Release */, 676 | ); 677 | defaultConfigurationIsVisible = 0; 678 | defaultConfigurationName = Release; 679 | }; 680 | /* End XCConfigurationList section */ 681 | }; 682 | rootObject = 6003F582195388D10070C39A /* Project object */; 683 | } 684 | -------------------------------------------------------------------------------- /Example/SCNavigationControlCenter.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Example/SCNavigationControlCenter.xcodeproj/xcshareddata/xcschemes/SCNavigationControlCenter-Example.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 33 | 39 | 40 | 41 | 42 | 43 | 49 | 50 | 51 | 52 | 53 | 54 | 64 | 66 | 72 | 73 | 74 | 75 | 76 | 77 | 83 | 85 | 91 | 92 | 93 | 94 | 96 | 97 | 100 | 101 | 102 | -------------------------------------------------------------------------------- /Example/SCNavigationControlCenter.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /Example/SCNavigationControlCenter/1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SergioChan/SCNavigationControlCenter/c03fe43a468af4232df9c09083d6ed9a5ba686bb/Example/SCNavigationControlCenter/1.jpg -------------------------------------------------------------------------------- /Example/SCNavigationControlCenter/2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SergioChan/SCNavigationControlCenter/c03fe43a468af4232df9c09083d6ed9a5ba686bb/Example/SCNavigationControlCenter/2.jpg -------------------------------------------------------------------------------- /Example/SCNavigationControlCenter/3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SergioChan/SCNavigationControlCenter/c03fe43a468af4232df9c09083d6ed9a5ba686bb/Example/SCNavigationControlCenter/3.jpg -------------------------------------------------------------------------------- /Example/SCNavigationControlCenter/4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SergioChan/SCNavigationControlCenter/c03fe43a468af4232df9c09083d6ed9a5ba686bb/Example/SCNavigationControlCenter/4.jpg -------------------------------------------------------------------------------- /Example/SCNavigationControlCenter/5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SergioChan/SCNavigationControlCenter/c03fe43a468af4232df9c09083d6ed9a5ba686bb/Example/SCNavigationControlCenter/5.jpg -------------------------------------------------------------------------------- /Example/SCNavigationControlCenter/6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SergioChan/SCNavigationControlCenter/c03fe43a468af4232df9c09083d6ed9a5ba686bb/Example/SCNavigationControlCenter/6.jpg -------------------------------------------------------------------------------- /Example/SCNavigationControlCenter/7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SergioChan/SCNavigationControlCenter/c03fe43a468af4232df9c09083d6ed9a5ba686bb/Example/SCNavigationControlCenter/7.jpg -------------------------------------------------------------------------------- /Example/SCNavigationControlCenter/Images.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "size" : "29x29", 5 | "idiom" : "iphone", 6 | "filename" : "Icon-Small@2x.png", 7 | "scale" : "2x" 8 | }, 9 | { 10 | "size" : "29x29", 11 | "idiom" : "iphone", 12 | "filename" : "Icon-Small@3x.png", 13 | "scale" : "3x" 14 | }, 15 | { 16 | "size" : "40x40", 17 | "idiom" : "iphone", 18 | "filename" : "Icon-Spotlight-40@2x.png", 19 | "scale" : "2x" 20 | }, 21 | { 22 | "size" : "40x40", 23 | "idiom" : "iphone", 24 | "filename" : "Icon-Spotlight-40@3x.png", 25 | "scale" : "3x" 26 | }, 27 | { 28 | "size" : "60x60", 29 | "idiom" : "iphone", 30 | "filename" : "Icon-60@2x.png", 31 | "scale" : "2x" 32 | }, 33 | { 34 | "size" : "60x60", 35 | "idiom" : "iphone", 36 | "filename" : "Icon-60@3x.png", 37 | "scale" : "3x" 38 | }, 39 | { 40 | "size" : "29x29", 41 | "idiom" : "ipad", 42 | "filename" : "Icon-Small.png", 43 | "scale" : "1x" 44 | }, 45 | { 46 | "size" : "29x29", 47 | "idiom" : "ipad", 48 | "filename" : "Icon-Small@2x-1.png", 49 | "scale" : "2x" 50 | }, 51 | { 52 | "size" : "40x40", 53 | "idiom" : "ipad", 54 | "filename" : "Icon-Spotlight-40.png", 55 | "scale" : "1x" 56 | }, 57 | { 58 | "size" : "40x40", 59 | "idiom" : "ipad", 60 | "filename" : "Icon-Spotlight-40@2x-1.png", 61 | "scale" : "2x" 62 | }, 63 | { 64 | "size" : "76x76", 65 | "idiom" : "ipad", 66 | "filename" : "Icon-76.png", 67 | "scale" : "1x" 68 | }, 69 | { 70 | "size" : "76x76", 71 | "idiom" : "ipad", 72 | "filename" : "Icon-76@2x.png", 73 | "scale" : "2x" 74 | } 75 | ], 76 | "info" : { 77 | "version" : 1, 78 | "author" : "xcode" 79 | } 80 | } -------------------------------------------------------------------------------- /Example/SCNavigationControlCenter/Images.xcassets/AppIcon.appiconset/Icon-60@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SergioChan/SCNavigationControlCenter/c03fe43a468af4232df9c09083d6ed9a5ba686bb/Example/SCNavigationControlCenter/Images.xcassets/AppIcon.appiconset/Icon-60@2x.png -------------------------------------------------------------------------------- /Example/SCNavigationControlCenter/Images.xcassets/AppIcon.appiconset/Icon-60@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SergioChan/SCNavigationControlCenter/c03fe43a468af4232df9c09083d6ed9a5ba686bb/Example/SCNavigationControlCenter/Images.xcassets/AppIcon.appiconset/Icon-60@3x.png -------------------------------------------------------------------------------- /Example/SCNavigationControlCenter/Images.xcassets/AppIcon.appiconset/Icon-76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SergioChan/SCNavigationControlCenter/c03fe43a468af4232df9c09083d6ed9a5ba686bb/Example/SCNavigationControlCenter/Images.xcassets/AppIcon.appiconset/Icon-76.png -------------------------------------------------------------------------------- /Example/SCNavigationControlCenter/Images.xcassets/AppIcon.appiconset/Icon-76@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SergioChan/SCNavigationControlCenter/c03fe43a468af4232df9c09083d6ed9a5ba686bb/Example/SCNavigationControlCenter/Images.xcassets/AppIcon.appiconset/Icon-76@2x.png -------------------------------------------------------------------------------- /Example/SCNavigationControlCenter/Images.xcassets/AppIcon.appiconset/Icon-Small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SergioChan/SCNavigationControlCenter/c03fe43a468af4232df9c09083d6ed9a5ba686bb/Example/SCNavigationControlCenter/Images.xcassets/AppIcon.appiconset/Icon-Small.png -------------------------------------------------------------------------------- /Example/SCNavigationControlCenter/Images.xcassets/AppIcon.appiconset/Icon-Small@2x-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SergioChan/SCNavigationControlCenter/c03fe43a468af4232df9c09083d6ed9a5ba686bb/Example/SCNavigationControlCenter/Images.xcassets/AppIcon.appiconset/Icon-Small@2x-1.png -------------------------------------------------------------------------------- /Example/SCNavigationControlCenter/Images.xcassets/AppIcon.appiconset/Icon-Small@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SergioChan/SCNavigationControlCenter/c03fe43a468af4232df9c09083d6ed9a5ba686bb/Example/SCNavigationControlCenter/Images.xcassets/AppIcon.appiconset/Icon-Small@2x.png -------------------------------------------------------------------------------- /Example/SCNavigationControlCenter/Images.xcassets/AppIcon.appiconset/Icon-Small@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SergioChan/SCNavigationControlCenter/c03fe43a468af4232df9c09083d6ed9a5ba686bb/Example/SCNavigationControlCenter/Images.xcassets/AppIcon.appiconset/Icon-Small@3x.png -------------------------------------------------------------------------------- /Example/SCNavigationControlCenter/Images.xcassets/AppIcon.appiconset/Icon-Spotlight-40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SergioChan/SCNavigationControlCenter/c03fe43a468af4232df9c09083d6ed9a5ba686bb/Example/SCNavigationControlCenter/Images.xcassets/AppIcon.appiconset/Icon-Spotlight-40.png -------------------------------------------------------------------------------- /Example/SCNavigationControlCenter/Images.xcassets/AppIcon.appiconset/Icon-Spotlight-40@2x-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SergioChan/SCNavigationControlCenter/c03fe43a468af4232df9c09083d6ed9a5ba686bb/Example/SCNavigationControlCenter/Images.xcassets/AppIcon.appiconset/Icon-Spotlight-40@2x-1.png -------------------------------------------------------------------------------- /Example/SCNavigationControlCenter/Images.xcassets/AppIcon.appiconset/Icon-Spotlight-40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SergioChan/SCNavigationControlCenter/c03fe43a468af4232df9c09083d6ed9a5ba686bb/Example/SCNavigationControlCenter/Images.xcassets/AppIcon.appiconset/Icon-Spotlight-40@2x.png -------------------------------------------------------------------------------- /Example/SCNavigationControlCenter/Images.xcassets/AppIcon.appiconset/Icon-Spotlight-40@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SergioChan/SCNavigationControlCenter/c03fe43a468af4232df9c09083d6ed9a5ba686bb/Example/SCNavigationControlCenter/Images.xcassets/AppIcon.appiconset/Icon-Spotlight-40@3x.png -------------------------------------------------------------------------------- /Example/SCNavigationControlCenter/Images.xcassets/LaunchImage.launchimage/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "orientation" : "portrait", 5 | "idiom" : "iphone", 6 | "extent" : "full-screen", 7 | "minimum-system-version" : "7.0", 8 | "scale" : "2x" 9 | }, 10 | { 11 | "orientation" : "portrait", 12 | "idiom" : "iphone", 13 | "subtype" : "retina4", 14 | "extent" : "full-screen", 15 | "minimum-system-version" : "7.0", 16 | "scale" : "2x" 17 | }, 18 | { 19 | "orientation" : "portrait", 20 | "idiom" : "ipad", 21 | "extent" : "full-screen", 22 | "minimum-system-version" : "7.0", 23 | "scale" : "1x" 24 | }, 25 | { 26 | "orientation" : "landscape", 27 | "idiom" : "ipad", 28 | "extent" : "full-screen", 29 | "minimum-system-version" : "7.0", 30 | "scale" : "1x" 31 | }, 32 | { 33 | "orientation" : "portrait", 34 | "idiom" : "ipad", 35 | "extent" : "full-screen", 36 | "minimum-system-version" : "7.0", 37 | "scale" : "2x" 38 | }, 39 | { 40 | "orientation" : "landscape", 41 | "idiom" : "ipad", 42 | "extent" : "full-screen", 43 | "minimum-system-version" : "7.0", 44 | "scale" : "2x" 45 | } 46 | ], 47 | "info" : { 48 | "version" : 1, 49 | "author" : "xcode" 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /Example/SCNavigationControlCenter/Main.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | This is an advanced navigation control center that can allow you to navigate to whichever view controller you want. 48 | It's very simple! 49 | 1. Simply long press the navigation bar to activate the control center and choose whichever view controller you want to navigate to. 50 | 2. Tap the blank area to return to the normal view. 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | This is an advanced navigation control center that can allow you to navigate to whichever view controller you want. 161 | It's very simple! 162 | 1. Simply long press the navigation bar to activate the control center and choose whichever view controller you want to navigate to. 163 | 2. Tap the blank area to return to the normal view. 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 | 196 | 197 | 198 | 199 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | 220 | -------------------------------------------------------------------------------- /Example/SCNavigationControlCenter/PictureViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // PictureViewController.h 3 | // SCNavigationController 4 | // 5 | // Created by 叔 陈 on 15/12/3. 6 | // Copyright © 2015年 叔 陈. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface PictureViewController : UIViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /Example/SCNavigationControlCenter/PictureViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // PictureViewController.m 3 | // SCNavigationController 4 | // 5 | // Created by 叔 陈 on 15/12/3. 6 | // Copyright © 2015年 叔 陈. All rights reserved. 7 | // 8 | 9 | #import "PictureViewController.h" 10 | 11 | @interface PictureViewController () 12 | 13 | @end 14 | 15 | @implementation PictureViewController 16 | 17 | - (void)viewDidLoad { 18 | [super viewDidLoad]; 19 | 20 | UIImageView *imageView = [[UIImageView alloc]initWithFrame:self.view.frame]; 21 | 22 | int value = (arc4random() % 7) + 1; 23 | imageView.image = [UIImage imageNamed:[NSString stringWithFormat:@"%d.jpg",value]]; 24 | [self.view addSubview:imageView]; 25 | 26 | self.title = @"VC's title"; 27 | 28 | UIBarButtonItem *next = [[UIBarButtonItem alloc]initWithTitle:@"new VC" style:UIBarButtonItemStylePlain target:self action:@selector(fuck:)]; 29 | self.navigationItem.rightBarButtonItem = next; 30 | 31 | // Do any additional setup after loading the view. 32 | } 33 | 34 | - (void)fuck:(id)sender 35 | { 36 | PictureViewController *vc = [[PictureViewController alloc]init]; 37 | [self.navigationController pushViewController:vc animated:YES]; 38 | } 39 | 40 | - (void)didReceiveMemoryWarning { 41 | [super didReceiveMemoryWarning]; 42 | // Dispose of any resources that can be recreated. 43 | } 44 | 45 | /* 46 | #pragma mark - Navigation 47 | 48 | // In a storyboard-based application, you will often want to do a little preparation before navigation 49 | - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { 50 | // Get the new view controller using [segue destinationViewController]. 51 | // Pass the selected object to the new view controller. 52 | } 53 | */ 54 | 55 | @end 56 | -------------------------------------------------------------------------------- /Example/SCNavigationControlCenter/SCAppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // SCAppDelegate.h 3 | // SCNavigationControlCenter 4 | // 5 | // Created by Sergio Chan on 12/04/2015. 6 | // Copyright (c) 2015 Sergio Chan. All rights reserved. 7 | // 8 | 9 | @import UIKit; 10 | 11 | @interface SCAppDelegate : UIResponder 12 | 13 | @property (strong, nonatomic) UIWindow *window; 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /Example/SCNavigationControlCenter/SCAppDelegate.m: -------------------------------------------------------------------------------- 1 | // 2 | // SCAppDelegate.m 3 | // SCNavigationControlCenter 4 | // 5 | // Created by Sergio Chan on 12/04/2015. 6 | // Copyright (c) 2015 Sergio Chan. All rights reserved. 7 | // 8 | 9 | #import "SCAppDelegate.h" 10 | 11 | @implementation SCAppDelegate 12 | 13 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 14 | { 15 | // Override point for customization after application launch. 16 | return YES; 17 | } 18 | 19 | - (void)applicationWillResignActive:(UIApplication *)application 20 | { 21 | // 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. 22 | // 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. 23 | } 24 | 25 | - (void)applicationDidEnterBackground:(UIApplication *)application 26 | { 27 | // 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. 28 | // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. 29 | } 30 | 31 | - (void)applicationWillEnterForeground:(UIApplication *)application 32 | { 33 | // 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. 34 | } 35 | 36 | - (void)applicationDidBecomeActive:(UIApplication *)application 37 | { 38 | // 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. 39 | } 40 | 41 | - (void)applicationWillTerminate:(UIApplication *)application 42 | { 43 | // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. 44 | } 45 | 46 | @end 47 | -------------------------------------------------------------------------------- /Example/SCNavigationControlCenter/SCNavigationControlCenter-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleDisplayName 8 | ${PRODUCT_NAME} 9 | CFBundleExecutable 10 | ${EXECUTABLE_NAME} 11 | CFBundleIdentifier 12 | $(PRODUCT_BUNDLE_IDENTIFIER) 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | ${PRODUCT_NAME} 17 | CFBundlePackageType 18 | APPL 19 | CFBundleShortVersionString 20 | 1.0 21 | CFBundleSignature 22 | ???? 23 | CFBundleVersion 24 | 1.0 25 | LSRequiresIPhoneOS 26 | 27 | UILaunchStoryboardName 28 | Main 29 | UIMainStoryboardFile 30 | Main 31 | UIRequiredDeviceCapabilities 32 | 33 | armv7 34 | 35 | UIStatusBarStyle 36 | UIStatusBarStyleLightContent 37 | UISupportedInterfaceOrientations 38 | 39 | UIInterfaceOrientationPortrait 40 | 41 | UISupportedInterfaceOrientations~ipad 42 | 43 | UIInterfaceOrientationPortrait 44 | UIInterfaceOrientationPortraitUpsideDown 45 | UIInterfaceOrientationLandscapeLeft 46 | UIInterfaceOrientationLandscapeRight 47 | 48 | UIViewControllerBasedStatusBarAppearance 49 | 50 | 51 | 52 | -------------------------------------------------------------------------------- /Example/SCNavigationControlCenter/SCNavigationControlCenter-Prefix.pch: -------------------------------------------------------------------------------- 1 | // 2 | // Prefix header 3 | // 4 | // The contents of this file are implicitly included at the beginning of every source file. 5 | // 6 | 7 | #import 8 | 9 | #ifndef __IPHONE_5_0 10 | #warning "This project uses features only available in iOS SDK 5.0 and later." 11 | #endif 12 | 13 | #ifdef __OBJC__ 14 | @import UIKit; 15 | @import Foundation; 16 | #endif 17 | -------------------------------------------------------------------------------- /Example/SCNavigationControlCenter/SCNavigationController.h: -------------------------------------------------------------------------------- 1 | // 2 | // SCNavigationController.h 3 | // SCNavigationController 4 | // 5 | // Created by 叔 陈 on 15/11/30. 6 | // Copyright © 2015年 叔 陈. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface SCNavigationController : UINavigationController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /Example/SCNavigationControlCenter/SCNavigationController.m: -------------------------------------------------------------------------------- 1 | // 2 | // SCNavigationController.m 3 | // SCNavigationController 4 | // 5 | // Created by 叔 陈 on 15/11/30. 6 | // Copyright © 2015年 叔 陈. All rights reserved. 7 | // 8 | 9 | #import "SCNavigationController.h" 10 | #import "SCNavigationControlCenter.h" 11 | 12 | @interface SCNavigationController () 13 | 14 | @end 15 | 16 | @implementation SCNavigationController 17 | 18 | - (void)viewDidLoad { 19 | [super viewDidLoad]; 20 | [[SCNavigationControlCenter sharedInstance] setNavigationController:self]; 21 | 22 | UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc]initWithTarget:self action:@selector(longPressed:)]; 23 | [self.navigationBar addGestureRecognizer:longPress]; 24 | // Do any additional setup after loading the view. 25 | } 26 | 27 | - (void)longPressed:(UILongPressGestureRecognizer *)sender 28 | { 29 | if(sender.state == UIGestureRecognizerStateBegan) 30 | { 31 | [[SCNavigationControlCenter sharedInstance] showWithNavigationController:self]; 32 | } 33 | } 34 | 35 | - (void)didReceiveMemoryWarning { 36 | [super didReceiveMemoryWarning]; 37 | // Dispose of any resources that can be recreated. 38 | } 39 | 40 | /* 41 | #pragma mark - Navigation 42 | 43 | // In a storyboard-based application, you will often want to do a little preparation before navigation 44 | - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { 45 | // Get the new view controller using [segue destinationViewController]. 46 | // Pass the selected object to the new view controller. 47 | } 48 | */ 49 | 50 | @end 51 | -------------------------------------------------------------------------------- /Example/SCNavigationControlCenter/TabAViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // TabAViewController.h 3 | // SCNavigationController 4 | // 5 | // Created by 叔 陈 on 15/12/3. 6 | // Copyright © 2015年 叔 陈. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface TabAViewController : UIViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /Example/SCNavigationControlCenter/TabAViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // TabAViewController.m 3 | // SCNavigationController 4 | // 5 | // Created by 叔 陈 on 15/12/3. 6 | // Copyright © 2015年 叔 陈. All rights reserved. 7 | // 8 | 9 | #import "TabAViewController.h" 10 | #import "PictureViewController.h" 11 | 12 | @interface TabAViewController () 13 | 14 | @end 15 | 16 | @implementation TabAViewController 17 | 18 | - (void)viewDidLoad { 19 | [super viewDidLoad]; 20 | self.title = @"Navi A"; 21 | 22 | UIImageView *imageView = [[UIImageView alloc]initWithFrame:self.view.frame]; 23 | imageView.image = [UIImage imageNamed:@"2.jpg"]; 24 | [self.view addSubview:imageView]; 25 | 26 | // Do any additional setup after loading the view. 27 | } 28 | 29 | - (IBAction)ButtonPressed:(id)sender { 30 | PictureViewController *vc = [[PictureViewController alloc]init]; 31 | [self.navigationController pushViewController:vc animated:YES]; 32 | } 33 | 34 | - (void)didReceiveMemoryWarning { 35 | [super didReceiveMemoryWarning]; 36 | // Dispose of any resources that can be recreated. 37 | } 38 | 39 | /* 40 | #pragma mark - Navigation 41 | 42 | // In a storyboard-based application, you will often want to do a little preparation before navigation 43 | - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { 44 | // Get the new view controller using [segue destinationViewController]. 45 | // Pass the selected object to the new view controller. 46 | } 47 | */ 48 | 49 | @end 50 | -------------------------------------------------------------------------------- /Example/SCNavigationControlCenter/TabBViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // TabBViewController.h 3 | // SCNavigationController 4 | // 5 | // Created by 叔 陈 on 15/12/3. 6 | // Copyright © 2015年 叔 陈. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface TabBViewController : UIViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /Example/SCNavigationControlCenter/TabBViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // TabBViewController.m 3 | // SCNavigationController 4 | // 5 | // Created by 叔 陈 on 15/12/3. 6 | // Copyright © 2015年 叔 陈. All rights reserved. 7 | // 8 | 9 | #import "TabBViewController.h" 10 | #import "PictureViewController.h" 11 | 12 | @interface TabBViewController () 13 | 14 | @end 15 | 16 | @implementation TabBViewController 17 | 18 | - (void)viewDidLoad { 19 | [super viewDidLoad]; 20 | self.title = @"Navi B"; 21 | 22 | UIImageView *imageView = [[UIImageView alloc]initWithFrame:self.view.frame]; 23 | imageView.image = [UIImage imageNamed:@"3.jpg"]; 24 | [self.view addSubview:imageView]; 25 | // Do any additional setup after loading the view. 26 | } 27 | 28 | - (IBAction)ButtonPressed:(id)sender { 29 | PictureViewController *vc = [[PictureViewController alloc]init]; 30 | [self.navigationController pushViewController:vc animated:YES]; 31 | } 32 | 33 | - (void)didReceiveMemoryWarning { 34 | [super didReceiveMemoryWarning]; 35 | // Dispose of any resources that can be recreated. 36 | } 37 | 38 | /* 39 | #pragma mark - Navigation 40 | 41 | // In a storyboard-based application, you will often want to do a little preparation before navigation 42 | - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { 43 | // Get the new view controller using [segue destinationViewController]. 44 | // Pass the selected object to the new view controller. 45 | } 46 | */ 47 | 48 | @end 49 | -------------------------------------------------------------------------------- /Example/SCNavigationControlCenter/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /Example/SCNavigationControlCenter/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // SCNavigationControlCenter 4 | // 5 | // Created by Sergio Chan on 12/04/2015. 6 | // Copyright (c) 2015 Sergio Chan. All rights reserved. 7 | // 8 | 9 | @import UIKit; 10 | #import "SCAppDelegate.h" 11 | 12 | int main(int argc, char * argv[]) 13 | { 14 | @autoreleasepool { 15 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([SCAppDelegate class])); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Example/Tests/Tests-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundlePackageType 14 | BNDL 15 | CFBundleShortVersionString 16 | 1.0 17 | CFBundleSignature 18 | ???? 19 | CFBundleVersion 20 | 1 21 | 22 | 23 | -------------------------------------------------------------------------------- /Example/Tests/Tests-Prefix.pch: -------------------------------------------------------------------------------- 1 | // The contents of this file are implicitly included at the beginning of every test case source file. 2 | 3 | #ifdef __OBJC__ 4 | 5 | 6 | 7 | #endif 8 | -------------------------------------------------------------------------------- /Example/Tests/Tests.m: -------------------------------------------------------------------------------- 1 | // 2 | // SCNavigationControlCenterTests.m 3 | // SCNavigationControlCenterTests 4 | // 5 | // Created by Sergio Chan on 12/04/2015. 6 | // Copyright (c) 2015 Sergio Chan. All rights reserved. 7 | // 8 | 9 | @import XCTest; 10 | 11 | @interface Tests : XCTestCase 12 | 13 | @end 14 | 15 | @implementation Tests 16 | 17 | - (void)setUp 18 | { 19 | [super setUp]; 20 | // Put setup code here. This method is called before the invocation of each test method in the class. 21 | } 22 | 23 | - (void)tearDown 24 | { 25 | // Put teardown code here. This method is called after the invocation of each test method in the class. 26 | [super tearDown]; 27 | } 28 | 29 | - (void)testExample 30 | { 31 | XCTFail(@"No implementation for \"%s\"", __PRETTY_FUNCTION__); 32 | } 33 | 34 | @end 35 | 36 | -------------------------------------------------------------------------------- /Example/Tests/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2015 Sergio Chan 2 | The MIT License (MIT) 3 | 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | 23 | 24 | -------------------------------------------------------------------------------- /Pod/Assets/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SergioChan/SCNavigationControlCenter/c03fe43a468af4232df9c09083d6ed9a5ba686bb/Pod/Assets/.gitkeep -------------------------------------------------------------------------------- /Pod/Classes/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SergioChan/SCNavigationControlCenter/c03fe43a468af4232df9c09083d6ed9a5ba686bb/Pod/Classes/.gitkeep -------------------------------------------------------------------------------- /Pod/Classes/SCNavigationControlCenter.h: -------------------------------------------------------------------------------- 1 | // 2 | // SCNavigationControlCenter.h 3 | // SCNavigationController 4 | // 5 | // Created by 叔 陈 on 15/12/3. 6 | // Copyright © 2015年 叔 陈. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "UIViewExt.h" 11 | #import "iCarousel.h" 12 | 13 | #define ScreenWidth [[UIScreen mainScreen] bounds].size.width 14 | #define ScreenHeight [[UIScreen mainScreen] bounds].size.height 15 | 16 | #define SCLog(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__); 17 | 18 | @interface SCNavigationControlCenter : UIView 19 | < 20 | iCarouselDelegate, 21 | iCarouselDataSource, 22 | UINavigationControllerDelegate 23 | > 24 | 25 | @property (nonatomic, strong) iCarousel *carousel; 26 | @property (nonatomic, assign) CGSize cardSize; 27 | 28 | @property (nonatomic, strong) UIWindow *backgroundWindow; 29 | 30 | @property (nonatomic, strong) UINavigationController *navigationController; 31 | @property (nonatomic, strong) UIVisualEffectView *blurView; 32 | 33 | @property (nonatomic) BOOL isShowing; 34 | 35 | + (SCNavigationControlCenter *) sharedInstance; 36 | - (void)setNavigationController:(UINavigationController *)navigationController; 37 | 38 | - (void)show; 39 | - (void)showWithNavigationController:(UINavigationController *)controller; 40 | 41 | - (void)hide; 42 | - (void)hideWithCompletion:(void (^)(void))completion; 43 | 44 | @end 45 | -------------------------------------------------------------------------------- /Pod/Classes/SCNavigationControlCenter.m: -------------------------------------------------------------------------------- 1 | // 2 | // SCNavigationControlCenter.m 3 | // SCNavigationController 4 | // 5 | // Created by 叔 陈 on 15/12/3. 6 | // Copyright © 2015年 叔 陈. All rights reserved. 7 | // 8 | 9 | #import "SCNavigationControlCenter.h" 10 | 11 | @interface SCNavigationControlCenter() 12 | { 13 | NSMutableDictionary *_snapShots; 14 | UINavigationController *_navigationController; 15 | CGFloat _popAnimationDuration; 16 | UIWindow *_backgroundWindow; 17 | } 18 | 19 | @end 20 | 21 | @implementation SCNavigationControlCenter 22 | @dynamic navigationController; 23 | 24 | - (UINavigationController *)navigationController 25 | { 26 | return _navigationController; 27 | } 28 | 29 | - (void)setNavigationController:(UINavigationController *)navigationController 30 | { 31 | SCLog(@"success"); 32 | // If transfering from one navigation to another, snapshots must be cleared in order to record the new navigation's view controllers. 33 | if(![_navigationController isEqual:navigationController]) 34 | { 35 | [_snapShots removeAllObjects]; 36 | SCLog(@"remove"); 37 | } 38 | _navigationController = navigationController; 39 | 40 | // We need to get the delegate call back here in order to maintain the snap shots for each controllers. 41 | _navigationController.delegate = self; 42 | } 43 | 44 | # pragma mark - Initial method 45 | + (SCNavigationControlCenter *) sharedInstance 46 | { 47 | static dispatch_once_t onceToken; 48 | static SCNavigationControlCenter * sharedInstance; 49 | dispatch_once(&onceToken, ^{ 50 | sharedInstance = [[SCNavigationControlCenter alloc] initWithFrame:CGRectMake(0.0f,0.0f,ScreenWidth,ScreenHeight)]; 51 | }); 52 | return sharedInstance; 53 | } 54 | 55 | - (id)initWithFrame:(CGRect)frame 56 | { 57 | self = [super initWithFrame:frame]; 58 | if(self) 59 | { 60 | _popAnimationDuration = 0.2f; 61 | _snapShots = [NSMutableDictionary dictionary]; 62 | self.isShowing = NO; 63 | [self initSubViews]; 64 | } 65 | return self; 66 | } 67 | 68 | /** 69 | * 初始化所有子视图 70 | */ 71 | - (void)initSubViews 72 | { 73 | CGFloat cardWidth = [UIScreen mainScreen].bounds.size.width*5.0f/7.0f; 74 | self.cardSize = CGSizeMake(cardWidth, cardWidth*16.0f/9.0f); 75 | 76 | self.backgroundWindow = [[UIWindow alloc]initWithFrame:self.frame]; 77 | _backgroundWindow.windowLevel = UIWindowLevelStatusBar; 78 | _backgroundWindow.backgroundColor = [UIColor clearColor]; 79 | _backgroundWindow.alpha = 0.0f; 80 | 81 | self.blurView = [[UIVisualEffectView alloc]initWithFrame:self.frame]; 82 | _blurView.effect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleDark]; 83 | [_backgroundWindow addSubview:_blurView]; 84 | 85 | self.userInteractionEnabled = YES; 86 | _backgroundWindow.userInteractionEnabled = YES; 87 | 88 | self.carousel = [[iCarousel alloc] initWithFrame:[UIScreen mainScreen].bounds]; 89 | [_backgroundWindow addSubview:self.carousel]; 90 | self.carousel.delegate = self; 91 | self.carousel.dataSource = self; 92 | self.carousel.type = iCarouselTypeCustom; 93 | self.carousel.bounceDistance = 0.2f; 94 | self.carousel.viewpointOffset = CGSizeMake(-cardWidth/5.0f, 0); 95 | } 96 | 97 | # pragma mark - Basic method for control showing and hiding 98 | - (void)show 99 | { 100 | if(_isShowing) 101 | { 102 | return; 103 | } 104 | _isShowing = YES; 105 | 106 | [self.carousel reloadData]; 107 | [_backgroundWindow makeKeyAndVisible]; 108 | _backgroundWindow.alpha = 0.0f; 109 | 110 | [self.carousel scrollToItemAtIndex:self.navigationController.viewControllers.count-1 animated:NO]; 111 | [self performSelector:@selector(appearAnimation) withObject:nil afterDelay:0.1f]; 112 | // 等待Carousel reload完成么 =。= 113 | } 114 | 115 | - (void)appearAnimation 116 | { 117 | _backgroundWindow.alpha = 1.0f; 118 | NSInteger maxIndex = self.carousel.numberOfItems - 1; 119 | 120 | UIView *current_cardView = [self.carousel itemViewAtIndex:maxIndex]; 121 | [current_cardView.layer removeAllAnimations]; 122 | [current_cardView.layer addAnimation:[self appearAnimationForCardView:current_cardView] forKey:@"wtf"]; 123 | 124 | 125 | for(NSInteger i=maxIndex-1;i>maxIndex-4;i--) 126 | { 127 | UIView *cardView = [self.carousel itemViewAtIndex:i]; 128 | if(cardView) 129 | { 130 | [cardView.layer removeAllAnimations]; 131 | [cardView.layer addAnimation:[self appearAnimationForCardView:cardView withIndex:maxIndex - i] forKey:@"wtf"]; 132 | } 133 | } 134 | } 135 | 136 | - (void)showWithNavigationController:(UINavigationController *)controller 137 | { 138 | self.navigationController = controller; 139 | [self show]; 140 | } 141 | 142 | - (void)hide 143 | { 144 | [self hideWithCompletion:nil]; 145 | } 146 | 147 | - (void)hideWithCompletion:(void (^)(void))completion 148 | { 149 | if(!_isShowing) 150 | { 151 | return; 152 | } 153 | 154 | [UIView animateWithDuration:0.5f animations:^{ 155 | _backgroundWindow.alpha = 0.0f; 156 | } completion:^(BOOL finished) { 157 | _isShowing = NO; 158 | _backgroundWindow.hidden = YES; 159 | if(completion) 160 | { 161 | completion(); 162 | } 163 | }]; 164 | } 165 | 166 | # pragma mark - iCarousel Delegate 167 | - (NSInteger)numberOfItemsInCarousel:(iCarousel *)carousel 168 | { 169 | if(self.navigationController) 170 | { 171 | return self.navigationController.viewControllers.count; 172 | } 173 | else 174 | { 175 | return 0; 176 | } 177 | } 178 | 179 | - (CGFloat)carouselItemWidth:(iCarousel *)carousel 180 | { 181 | return self.cardSize.width; 182 | } 183 | 184 | - (CGFloat)carousel:(iCarousel *)carousel valueForOption:(iCarouselOption)option withDefault:(CGFloat)value 185 | { 186 | switch (option) { 187 | case iCarouselOptionVisibleItems: 188 | { 189 | return 7; 190 | } 191 | default: 192 | break; 193 | } 194 | 195 | return value; 196 | } 197 | 198 | - (UIView *)carousel:(iCarousel *)carousel viewForItemAtIndex:(NSInteger)index reusingView:(UIView *)view 199 | { 200 | UIView *cardView = view; 201 | 202 | if (!cardView) 203 | { 204 | cardView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.cardSize.width, self.cardSize.height)]; 205 | 206 | UIImageView *imageView = [[UIImageView alloc] initWithFrame:cardView.bounds]; 207 | [cardView addSubview:imageView]; 208 | imageView.contentMode = UIViewContentModeScaleAspectFill; 209 | imageView.backgroundColor = [UIColor whiteColor]; 210 | imageView.tag = [@"image" hash]; 211 | 212 | cardView.layer.shadowPath = [UIBezierPath bezierPathWithRoundedRect:imageView.frame cornerRadius:5.0f].CGPath; 213 | cardView.layer.shadowRadius = 3.0f; 214 | cardView.layer.shadowColor = [UIColor blackColor].CGColor; 215 | cardView.layer.shadowOpacity = 0.5f; 216 | cardView.layer.shadowOffset = CGSizeMake(0, 0); 217 | 218 | CAShapeLayer *layer = [CAShapeLayer layer]; 219 | layer.frame = imageView.bounds; 220 | layer.path = [UIBezierPath bezierPathWithRoundedRect:imageView.bounds cornerRadius:5.0f].CGPath; 221 | imageView.layer.mask = layer; 222 | 223 | UILabel *titleLabel = [[UILabel alloc]initWithFrame:CGRectMake(2.0f, -20.0f, 100.0f, 15.0f)]; 224 | titleLabel.font = [UIFont systemFontOfSize:12.0f]; 225 | titleLabel.textColor = [UIColor whiteColor]; 226 | titleLabel.tag = [@"title" hash]; 227 | [cardView addSubview:titleLabel]; 228 | } 229 | 230 | UIViewController *tmp = [self.navigationController.viewControllers objectAtIndex:index]; 231 | NSString *t_key= [NSString stringWithFormat:@"%@",tmp]; 232 | 233 | UIImageView *imageView = (UIImageView*)[cardView viewWithTag:[@"image" hash]]; 234 | imageView.image = [_snapShots objectForKey:t_key]; 235 | 236 | UILabel *label = (UILabel *)[cardView viewWithTag:[@"title" hash]]; 237 | label.text = tmp.title; 238 | 239 | return cardView; 240 | } 241 | 242 | - (CATransform3D)carousel:(iCarousel *)carousel itemTransformForOffset:(CGFloat)offset baseTransform:(CATransform3D)transform 243 | { 244 | CGFloat scale = [self scaleByOffset:offset]; 245 | CGFloat translation = [self translationByOffset:offset]; 246 | 247 | return CATransform3DScale(CATransform3DTranslate(transform, translation * self.cardSize.width, 0, offset), scale, scale, 1.0f); 248 | } 249 | 250 | - (void)carouselDidScroll:(iCarousel *)carousel 251 | { 252 | for (UIView *view in carousel.visibleItemViews) 253 | { 254 | CGFloat offset = [carousel offsetForItemAtIndex:[carousel indexOfItemView:view]]; 255 | 256 | if ( offset < -3.0 ) 257 | { 258 | view.alpha = 0.0f; 259 | } 260 | else if ( offset < -2.0f) 261 | { 262 | view.alpha = offset + 3.0f; 263 | } 264 | else 265 | { 266 | view.alpha = 1.0f; 267 | } 268 | } 269 | } 270 | 271 | //形变是线性的就ok了 272 | - (CGFloat)scaleByOffset:(CGFloat)offset 273 | { 274 | return offset*0.04f + 1.0f; 275 | } 276 | 277 | //位移通过得到的公式来计算 278 | - (CGFloat)translationByOffset:(CGFloat)offset 279 | { 280 | CGFloat z = 5.0f/4.0f; 281 | CGFloat n = 5.0f/8.0f; 282 | 283 | //z/n是临界值 >=这个值时 我们就把itemView放到比较远的地方不让他显示在屏幕上就可以了 284 | if ( offset >= z/n ) 285 | { 286 | return 2.0f; 287 | } 288 | 289 | return 1/(z-n*offset)-1/z; 290 | } 291 | 292 | - (void)carousel:(iCarousel *)carousel didSelectItemAtIndex:(NSInteger)index 293 | { 294 | if(!_isShowing) 295 | { 296 | return; 297 | } 298 | 299 | [self.navigationController popToViewController:[self.navigationController.viewControllers objectAtIndex:index] animated:NO]; 300 | 301 | UIView *cardView = [self.carousel itemViewAtIndex:index]; 302 | if([self.carousel itemViewAtIndex:index+1]) 303 | { 304 | UIView *nextCardView = [self.carousel itemViewAtIndex:index+1]; 305 | [nextCardView.layer addAnimation:[self moveoutAnimationForNextCardView:cardView] forKey:@"next_one_move_out"]; 306 | } 307 | [cardView.layer addAnimation:[self popAnimationForCardView:cardView] forKey:@"chosen_one_pop_out"]; 308 | } 309 | 310 | - (void)carouseldidTapInBlankArea:(iCarousel *)carousel 311 | { 312 | [self hide]; 313 | } 314 | 315 | # pragma mark - Navigation delegate 316 | - (void)navigationController:(UINavigationController *)navigationController didShowViewController:(UIViewController *)viewController animated:(BOOL)animated 317 | { 318 | NSString *key= [NSString stringWithFormat:@"%@",viewController]; 319 | if([_snapShots objectForKey:key] == nil) 320 | { 321 | // 不存在 322 | [_snapShots setObject:[self capture] forKey:key]; 323 | } 324 | else 325 | { 326 | // 已经存在,则比对两者,去掉多余的 327 | // self.navigationController.viewControllers 328 | NSMutableDictionary *t_snapshots = [NSMutableDictionary dictionary]; 329 | for(UIViewController *t_vc in self.navigationController.viewControllers) 330 | { 331 | NSString *t_key= [NSString stringWithFormat:@"%@",t_vc]; 332 | if([_snapShots objectForKey:t_key]) 333 | { 334 | [t_snapshots setObject:[_snapShots objectForKey:t_key] forKey:t_key]; 335 | } 336 | } 337 | _snapShots = t_snapshots; 338 | } 339 | } 340 | 341 | # pragma mark - Get a screen capture 342 | - (UIImage *)capture 343 | { 344 | CALayer *layer = [[UIApplication sharedApplication].windows firstObject].layer; 345 | CGFloat scale = [UIScreen mainScreen].scale; 346 | UIGraphicsBeginImageContextWithOptions(layer.frame.size, NO, scale); 347 | 348 | [layer renderInContext:UIGraphicsGetCurrentContext()]; 349 | UIImage *screenshot = UIGraphicsGetImageFromCurrentImageContext(); 350 | UIGraphicsEndImageContext(); 351 | return screenshot; 352 | } 353 | 354 | #pragma mark - Animation methods 355 | /** 356 | * 选中的卡片的缩放和移动动画 357 | * 358 | * @param cardView 359 | * 360 | * @return CAAnimationGroup 361 | */ 362 | - (CAAnimationGroup *)popAnimationForCardView:(UIView *)cardView 363 | { 364 | CABasicAnimation *scaleAnimation; 365 | scaleAnimation = [CABasicAnimation animationWithKeyPath:@"transform"]; 366 | scaleAnimation.fromValue = [NSValue valueWithCATransform3D:CATransform3DIdentity]; 367 | scaleAnimation.toValue = [NSValue valueWithCATransform3D:CATransform3DMakeScale(ScreenWidth/cardView.width, ScreenHeight/cardView.height, 1.0)]; 368 | scaleAnimation.duration = _popAnimationDuration; 369 | scaleAnimation.cumulative = YES; 370 | scaleAnimation.repeatCount = 1; 371 | scaleAnimation.removedOnCompletion= NO; 372 | scaleAnimation.fillMode=kCAFillModeForwards; 373 | scaleAnimation.autoreverses = NO; 374 | scaleAnimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear]; 375 | scaleAnimation.speed = 1.0f; 376 | scaleAnimation.beginTime = 0.0f; 377 | 378 | CABasicAnimation *transitionAnimation; 379 | CGFloat translationX = cardView.center.x - ScreenWidth/2.0f; 380 | transitionAnimation = [CABasicAnimation animationWithKeyPath:@"transform.translation"]; 381 | transitionAnimation.fromValue = [NSValue valueWithCGSize:CGSizeMake(0.0f, 0.0f)]; 382 | transitionAnimation.toValue = [NSValue valueWithCGSize:CGSizeMake(translationX, 0.0f)]; 383 | transitionAnimation.duration = _popAnimationDuration; 384 | transitionAnimation.cumulative = YES; 385 | transitionAnimation.repeatCount = 1; 386 | transitionAnimation.removedOnCompletion= NO; 387 | transitionAnimation.fillMode=kCAFillModeForwards; 388 | transitionAnimation.autoreverses = NO; 389 | transitionAnimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear]; 390 | transitionAnimation.speed = 1.0f; 391 | transitionAnimation.beginTime = 0.0f; 392 | 393 | CAAnimationGroup *groupAnimation = [CAAnimationGroup animation]; 394 | groupAnimation.duration = _popAnimationDuration; 395 | groupAnimation.repeatCount = 1; 396 | groupAnimation.removedOnCompletion= NO; 397 | groupAnimation.fillMode=kCAFillModeForwards; 398 | groupAnimation.autoreverses = NO; 399 | groupAnimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear]; 400 | 401 | groupAnimation.delegate = self; 402 | groupAnimation.animations = [NSArray arrayWithObjects:scaleAnimation,transitionAnimation,nil]; 403 | 404 | return groupAnimation; 405 | } 406 | 407 | /** 408 | * 选中的卡片上方的卡片的弹出动画 409 | * 410 | * @param cardView 411 | * 412 | * @return CAAnimationGroup 413 | */ 414 | - (CAAnimationGroup *)moveoutAnimationForNextCardView:(UIView *)cardView 415 | { 416 | CABasicAnimation *transitionAnimation; 417 | CGFloat translationX = cardView.center.x - ScreenWidth/2.0f; 418 | CGFloat offset = 0.0f; 419 | transitionAnimation = [CABasicAnimation animationWithKeyPath:@"transform.translation"]; 420 | transitionAnimation.fromValue = [NSValue valueWithCGSize:CGSizeMake(0.0f, 0.0f)]; 421 | transitionAnimation.toValue = [NSValue valueWithCGSize:CGSizeMake(-translationX + offset, 0.0f)]; 422 | transitionAnimation.duration = _popAnimationDuration; 423 | transitionAnimation.cumulative = YES; 424 | transitionAnimation.repeatCount = 1; 425 | transitionAnimation.removedOnCompletion= NO; 426 | transitionAnimation.fillMode=kCAFillModeForwards; 427 | transitionAnimation.autoreverses = NO; 428 | transitionAnimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear]; 429 | transitionAnimation.speed = 1.0f; 430 | transitionAnimation.beginTime = 0.0f; 431 | 432 | CAAnimationGroup *groupAnimation = [CAAnimationGroup animation]; 433 | groupAnimation.duration = _popAnimationDuration; 434 | groupAnimation.repeatCount = 1; 435 | groupAnimation.removedOnCompletion= NO; 436 | groupAnimation.fillMode=kCAFillModeForwards; 437 | groupAnimation.autoreverses = NO; 438 | groupAnimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear]; 439 | 440 | groupAnimation.animations = [NSArray arrayWithObjects:transitionAnimation,nil]; 441 | return groupAnimation; 442 | } 443 | 444 | /** 445 | * 当前卡片出现的动画 446 | * 447 | * @param cardView 卡片的view 448 | * 449 | * @return CAAnimationGroup 450 | */ 451 | - (CAAnimationGroup *)appearAnimationForCardView:(UIView *)cardView 452 | { 453 | CABasicAnimation *scaleAnimation; 454 | scaleAnimation = [CABasicAnimation animationWithKeyPath:@"transform"]; 455 | scaleAnimation.fromValue = [NSValue valueWithCATransform3D:CATransform3DMakeScale(ScreenWidth/cardView.width, ScreenHeight/cardView.height, 1.0)]; 456 | scaleAnimation.toValue = [NSValue valueWithCATransform3D:CATransform3DIdentity]; 457 | scaleAnimation.duration = _popAnimationDuration; 458 | scaleAnimation.cumulative = YES; 459 | scaleAnimation.repeatCount = 1; 460 | scaleAnimation.removedOnCompletion= NO; 461 | scaleAnimation.fillMode=kCAFillModeForwards; 462 | scaleAnimation.autoreverses = NO; 463 | scaleAnimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear]; 464 | scaleAnimation.speed = 1.0f; 465 | scaleAnimation.beginTime = 0.0f; 466 | 467 | CAAnimationGroup *groupAnimation = [CAAnimationGroup animation]; 468 | groupAnimation.duration = _popAnimationDuration + 0.1f; 469 | groupAnimation.repeatCount = 1; 470 | groupAnimation.removedOnCompletion= NO; 471 | groupAnimation.fillMode=kCAFillModeForwards; 472 | groupAnimation.autoreverses = NO; 473 | groupAnimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear]; 474 | 475 | //groupAnimation.delegate = self; 476 | groupAnimation.animations = [NSArray arrayWithObjects:scaleAnimation,nil]; 477 | 478 | return groupAnimation; 479 | } 480 | 481 | /** 482 | * 后排的抽屉式弹出效果 483 | * 484 | * @param cardView 485 | * @param index 后排的序号 486 | * 487 | * @return CAAnimationGroup 488 | */ 489 | - (CAAnimationGroup *)appearAnimationForCardView:(UIView *)cardView withIndex:(NSInteger)index 490 | { 491 | CABasicAnimation *transitionAnimation; 492 | CGFloat translationX = index * 50.0f; 493 | 494 | transitionAnimation = [CABasicAnimation animationWithKeyPath:@"transform.translation"]; 495 | transitionAnimation.fromValue = [NSValue valueWithCGSize:CGSizeMake(translationX, 0.0f)]; 496 | transitionAnimation.toValue = [NSValue valueWithCGSize:CGSizeMake(0.0f, 0.0f)]; 497 | transitionAnimation.duration = _popAnimationDuration; 498 | transitionAnimation.cumulative = YES; 499 | transitionAnimation.repeatCount = 1; 500 | transitionAnimation.removedOnCompletion= NO; 501 | transitionAnimation.fillMode=kCAFillModeForwards; 502 | transitionAnimation.autoreverses = NO; 503 | transitionAnimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear]; 504 | transitionAnimation.speed = 1.0f; 505 | transitionAnimation.beginTime = 0.0f; 506 | 507 | CAAnimationGroup *groupAnimation = [CAAnimationGroup animation]; 508 | groupAnimation.duration = _popAnimationDuration + 0.1f; 509 | groupAnimation.repeatCount = 1; 510 | groupAnimation.removedOnCompletion= NO; 511 | groupAnimation.fillMode=kCAFillModeForwards; 512 | groupAnimation.autoreverses = NO; 513 | groupAnimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear]; 514 | groupAnimation.beginTime = 0.0f; 515 | 516 | //groupAnimation.delegate = self; 517 | groupAnimation.animations = [NSArray arrayWithObjects:transitionAnimation,nil]; 518 | 519 | return groupAnimation; 520 | } 521 | 522 | - (void)animationDidStop:(CAAnimation *)anim finished:(BOOL)flag 523 | { 524 | _isShowing = NO; 525 | _backgroundWindow.hidden = YES; 526 | _backgroundWindow.alpha = 0.0f; 527 | } 528 | @end 529 | -------------------------------------------------------------------------------- /Pod/Classes/UIViewExt.h: -------------------------------------------------------------------------------- 1 | /* 2 | Erica Sadun, http://ericasadun.com 3 | iPhone Developer's Cookbook, 3.0 Edition 4 | BSD License, Use at your own risk 5 | */ 6 | 7 | #import 8 | 9 | CGPoint CGRectGetCenter(CGRect rect); 10 | CGRect CGRectMoveToCenter(CGRect rect, CGPoint center); 11 | double radians(float degrees); 12 | CATransform3D getTransForm3DWithAngle(CGFloat angle); 13 | 14 | @interface UIView (ViewFrameGeometry) 15 | @property CGPoint origin; 16 | @property CGSize size; 17 | 18 | @property (readonly) CGPoint bottomLeft; 19 | @property (readonly) CGPoint bottomRight; 20 | @property (readonly) CGPoint topRight; 21 | 22 | @property CGFloat height; 23 | @property CGFloat width; 24 | 25 | @property CGFloat top; 26 | @property CGFloat left; 27 | 28 | @property CGFloat bottom; 29 | @property CGFloat right; 30 | 31 | - (void) moveBy: (CGPoint) delta; 32 | - (void) scaleBy: (CGFloat) scaleFactor; 33 | - (void) fitInSize: (CGSize) aSize; 34 | 35 | - (UIImage *)convertViewToImage; 36 | @end -------------------------------------------------------------------------------- /Pod/Classes/UIViewExt.m: -------------------------------------------------------------------------------- 1 | /* 2 | Erica Sadun, http://ericasadun.com 3 | iPhone Developer's Cookbook, 3.0 Edition 4 | BSD License, Use at your own risk 5 | */ 6 | 7 | #import "UIViewExt.h" 8 | 9 | CGPoint CGRectGetCenter(CGRect rect) 10 | { 11 | CGPoint pt; 12 | pt.x = CGRectGetMidX(rect); 13 | pt.y = CGRectGetMidY(rect); 14 | return pt; 15 | } 16 | 17 | double radians(float degrees) { 18 | return ( degrees * 3.14159265 ) / 180.0; 19 | } 20 | 21 | CATransform3D getTransForm3DWithAngle(CGFloat angle) 22 | { 23 | CATransform3D transform = CATransform3DIdentity; 24 | transform = CATransform3DRotate(transform, angle, 0, 0, 1); 25 | return transform; 26 | } 27 | 28 | CGRect CGRectMoveToCenter(CGRect rect, CGPoint center) 29 | { 30 | CGRect newrect = CGRectZero; 31 | newrect.origin.x = center.x-CGRectGetMidX(rect); 32 | newrect.origin.y = center.y-CGRectGetMidY(rect); 33 | newrect.size = rect.size; 34 | return newrect; 35 | } 36 | 37 | @implementation UIView (ViewGeometry) 38 | 39 | // Retrieve and set the origin 40 | - (CGPoint) origin 41 | { 42 | return self.frame.origin; 43 | } 44 | 45 | - (void) setOrigin: (CGPoint) aPoint 46 | { 47 | CGRect newframe = self.frame; 48 | newframe.origin = aPoint; 49 | self.frame = newframe; 50 | } 51 | 52 | 53 | // Retrieve and set the size 54 | - (CGSize) size 55 | { 56 | return self.frame.size; 57 | } 58 | 59 | - (void) setSize: (CGSize) aSize 60 | { 61 | CGRect newframe = self.frame; 62 | newframe.size = aSize; 63 | self.frame = newframe; 64 | } 65 | 66 | // Query other frame locations 67 | - (CGPoint) bottomRight 68 | { 69 | CGFloat x = self.frame.origin.x + self.frame.size.width; 70 | CGFloat y = self.frame.origin.y + self.frame.size.height; 71 | return CGPointMake(x, y); 72 | } 73 | 74 | - (CGPoint) bottomLeft 75 | { 76 | CGFloat x = self.frame.origin.x; 77 | CGFloat y = self.frame.origin.y + self.frame.size.height; 78 | return CGPointMake(x, y); 79 | } 80 | 81 | - (CGPoint) topRight 82 | { 83 | CGFloat x = self.frame.origin.x + self.frame.size.width; 84 | CGFloat y = self.frame.origin.y; 85 | return CGPointMake(x, y); 86 | } 87 | 88 | 89 | // Retrieve and set height, width, top, bottom, left, right 90 | - (CGFloat) height 91 | { 92 | return self.frame.size.height; 93 | } 94 | 95 | - (void) setHeight: (CGFloat) newheight 96 | { 97 | CGRect newframe = self.frame; 98 | newframe.size.height = newheight; 99 | self.frame = newframe; 100 | } 101 | 102 | - (CGFloat) width 103 | { 104 | return self.frame.size.width; 105 | } 106 | 107 | - (void) setWidth: (CGFloat) newwidth 108 | { 109 | CGRect newframe = self.frame; 110 | newframe.size.width = newwidth; 111 | self.frame = newframe; 112 | } 113 | 114 | - (CGFloat) top 115 | { 116 | return self.frame.origin.y; 117 | } 118 | 119 | - (void) setTop: (CGFloat) newtop 120 | { 121 | CGRect newframe = self.frame; 122 | newframe.origin.y = newtop; 123 | self.frame = newframe; 124 | } 125 | 126 | - (CGFloat) left 127 | { 128 | return self.frame.origin.x; 129 | } 130 | 131 | - (void) setLeft: (CGFloat) newleft 132 | { 133 | CGRect newframe = self.frame; 134 | newframe.origin.x = newleft; 135 | self.frame = newframe; 136 | } 137 | 138 | - (CGFloat) bottom 139 | { 140 | return self.frame.origin.y + self.frame.size.height; 141 | } 142 | 143 | - (void) setBottom: (CGFloat) newbottom 144 | { 145 | CGRect newframe = self.frame; 146 | newframe.origin.y = newbottom - self.frame.size.height; 147 | self.frame = newframe; 148 | } 149 | 150 | - (CGFloat) right 151 | { 152 | return self.frame.origin.x + self.frame.size.width; 153 | } 154 | 155 | - (void) setRight: (CGFloat) newright 156 | { 157 | CGFloat delta = newright - (self.frame.origin.x + self.frame.size.width); 158 | CGRect newframe = self.frame; 159 | newframe.origin.x += delta ; 160 | self.frame = newframe; 161 | } 162 | 163 | // Move via offset 164 | - (void) moveBy: (CGPoint) delta 165 | { 166 | CGPoint newcenter = self.center; 167 | newcenter.x += delta.x; 168 | newcenter.y += delta.y; 169 | self.center = newcenter; 170 | } 171 | 172 | // Scaling 173 | - (void) scaleBy: (CGFloat) scaleFactor 174 | { 175 | CGRect newframe = self.frame; 176 | newframe.size.width *= scaleFactor; 177 | newframe.size.height *= scaleFactor; 178 | self.frame = newframe; 179 | } 180 | 181 | // Ensure that both dimensions fit within the given size by scaling down 182 | - (void) fitInSize: (CGSize) aSize 183 | { 184 | CGFloat scale; 185 | CGRect newframe = self.frame; 186 | 187 | if (newframe.size.height && (newframe.size.height > aSize.height)) 188 | { 189 | scale = aSize.height / newframe.size.height; 190 | newframe.size.width *= scale; 191 | newframe.size.height *= scale; 192 | } 193 | 194 | if (newframe.size.width && (newframe.size.width >= aSize.width)) 195 | { 196 | scale = aSize.width / newframe.size.width; 197 | newframe.size.width *= scale; 198 | newframe.size.height *= scale; 199 | } 200 | 201 | self.frame = newframe; 202 | } 203 | 204 | - (UIImage *)convertViewToImage 205 | { 206 | CGSize s = self.bounds.size; 207 | //下面方法,第一个参数表示区域大小。 208 | //第二个参数表示是否是非透明的。如果需要显示半透明效果,需要传NO,否则传YES。 209 | //第三个参数就是屏幕密度。 210 | 211 | UIGraphicsBeginImageContextWithOptions(s, NO, [UIScreen mainScreen].scale); 212 | [self.layer renderInContext:UIGraphicsGetCurrentContext()]; 213 | UIImage *image = UIGraphicsGetImageFromCurrentImageContext(); 214 | UIGraphicsEndImageContext(); 215 | return image; 216 | } 217 | @end -------------------------------------------------------------------------------- /Pod/Classes/iCarousel.h: -------------------------------------------------------------------------------- 1 | // 2 | // iCarousel.h 3 | // 4 | // Version 1.8.1 5 | // 6 | // Created by Nick Lockwood on 01/04/2011. 7 | // Copyright 2011 Charcoal Design 8 | // 9 | // Distributed under the permissive zlib License 10 | // Get the latest version from here: 11 | // 12 | // https://github.com/nicklockwood/iCarousel 13 | // 14 | // This software is provided 'as-is', without any express or implied 15 | // warranty. In no event will the authors be held liable for any damages 16 | // arising from the use of this software. 17 | // 18 | // Permission is granted to anyone to use this software for any purpose, 19 | // including commercial applications, and to alter it and redistribute it 20 | // freely, subject to the following restrictions: 21 | // 22 | // 1. The origin of this software must not be misrepresented; you must not 23 | // claim that you wrote the original software. If you use this software 24 | // in a product, an acknowledgment in the product documentation would be 25 | // appreciated but is not required. 26 | // 27 | // 2. Altered source versions must be plainly marked as such, and must not be 28 | // misrepresented as being the original software. 29 | // 30 | // 3. This notice may not be removed or altered from any source distribution. 31 | // 32 | 33 | 34 | #pragma GCC diagnostic push 35 | #pragma GCC diagnostic ignored "-Wobjc-missing-property-synthesis" 36 | 37 | 38 | #import 39 | #undef weak_delegate 40 | #undef __weak_delegate 41 | #if __has_feature(objc_arc) && __has_feature(objc_arc_weak) && \ 42 | (!(defined __MAC_OS_X_VERSION_MIN_REQUIRED) || \ 43 | __MAC_OS_X_VERSION_MIN_REQUIRED >= __MAC_10_8) 44 | #define weak_delegate weak 45 | #else 46 | #define weak_delegate unsafe_unretained 47 | #endif 48 | 49 | 50 | #import 51 | #if defined USING_CHAMELEON || defined __IPHONE_OS_VERSION_MAX_ALLOWED 52 | #define ICAROUSEL_IOS 53 | #else 54 | #define ICAROUSEL_MACOS 55 | #endif 56 | 57 | 58 | #ifdef ICAROUSEL_IOS 59 | #import 60 | #else 61 | #import 62 | typedef NSView UIView; 63 | #endif 64 | 65 | 66 | typedef NS_ENUM(NSInteger, iCarouselType) 67 | { 68 | iCarouselTypeLinear = 0, 69 | iCarouselTypeRotary, 70 | iCarouselTypeInvertedRotary, 71 | iCarouselTypeCylinder, 72 | iCarouselTypeInvertedCylinder, 73 | iCarouselTypeWheel, 74 | iCarouselTypeInvertedWheel, 75 | iCarouselTypeCoverFlow, 76 | iCarouselTypeCoverFlow2, 77 | iCarouselTypeTimeMachine, 78 | iCarouselTypeInvertedTimeMachine, 79 | iCarouselTypeCustom 80 | }; 81 | 82 | 83 | typedef NS_ENUM(NSInteger, iCarouselOption) 84 | { 85 | iCarouselOptionWrap = 0, 86 | iCarouselOptionShowBackfaces, 87 | iCarouselOptionOffsetMultiplier, 88 | iCarouselOptionVisibleItems, 89 | iCarouselOptionCount, 90 | iCarouselOptionArc, 91 | iCarouselOptionAngle, 92 | iCarouselOptionRadius, 93 | iCarouselOptionTilt, 94 | iCarouselOptionSpacing, 95 | iCarouselOptionFadeMin, 96 | iCarouselOptionFadeMax, 97 | iCarouselOptionFadeRange, 98 | iCarouselOptionFadeMinAlpha 99 | }; 100 | 101 | 102 | @protocol iCarouselDataSource, iCarouselDelegate; 103 | 104 | @interface iCarousel : UIView 105 | 106 | @property (nonatomic, weak_delegate) IBOutlet id dataSource; 107 | @property (nonatomic, weak_delegate) IBOutlet id delegate; 108 | @property (nonatomic, assign) iCarouselType type; 109 | @property (nonatomic, assign) CGFloat perspective; 110 | @property (nonatomic, assign) CGFloat decelerationRate; 111 | @property (nonatomic, assign) CGFloat scrollSpeed; 112 | @property (nonatomic, assign) CGFloat bounceDistance; 113 | @property (nonatomic, assign, getter = isScrollEnabled) BOOL scrollEnabled; 114 | @property (nonatomic, assign, getter = isPagingEnabled) BOOL pagingEnabled; 115 | @property (nonatomic, assign, getter = isVertical) BOOL vertical; 116 | @property (nonatomic, readonly, getter = isWrapEnabled) BOOL wrapEnabled; 117 | @property (nonatomic, assign) BOOL bounces; 118 | @property (nonatomic, assign) CGFloat scrollOffset; 119 | @property (nonatomic, readonly) CGFloat offsetMultiplier; 120 | @property (nonatomic, assign) CGSize contentOffset; 121 | @property (nonatomic, assign) CGSize viewpointOffset; 122 | @property (nonatomic, readonly) NSInteger numberOfItems; 123 | @property (nonatomic, readonly) NSInteger numberOfPlaceholders; 124 | @property (nonatomic, assign) NSInteger currentItemIndex; 125 | @property (nonatomic, strong, readonly) UIView *currentItemView; 126 | @property (nonatomic, strong, readonly) NSArray *indexesForVisibleItems; 127 | @property (nonatomic, readonly) NSInteger numberOfVisibleItems; 128 | @property (nonatomic, strong, readonly) NSArray *visibleItemViews; 129 | @property (nonatomic, readonly) CGFloat itemWidth; 130 | @property (nonatomic, strong, readonly) UIView *contentView; 131 | @property (nonatomic, readonly) CGFloat toggle; 132 | @property (nonatomic, assign) CGFloat autoscroll; 133 | @property (nonatomic, assign) BOOL stopAtItemBoundary; 134 | @property (nonatomic, assign) BOOL scrollToItemBoundary; 135 | @property (nonatomic, assign) BOOL ignorePerpendicularSwipes; 136 | @property (nonatomic, assign) BOOL centerItemWhenSelected; 137 | @property (nonatomic, readonly, getter = isDragging) BOOL dragging; 138 | @property (nonatomic, readonly, getter = isDecelerating) BOOL decelerating; 139 | @property (nonatomic, readonly, getter = isScrolling) BOOL scrolling; 140 | 141 | - (void)scrollByOffset:(CGFloat)offset duration:(NSTimeInterval)duration; 142 | - (void)scrollToOffset:(CGFloat)offset duration:(NSTimeInterval)duration; 143 | - (void)scrollByNumberOfItems:(NSInteger)itemCount duration:(NSTimeInterval)duration; 144 | - (void)scrollToItemAtIndex:(NSInteger)index duration:(NSTimeInterval)duration; 145 | - (void)scrollToItemAtIndex:(NSInteger)index animated:(BOOL)animated; 146 | 147 | - (UIView *)itemViewAtIndex:(NSInteger)index; 148 | - (NSInteger)indexOfItemView:(UIView *)view; 149 | - (NSInteger)indexOfItemViewOrSubview:(UIView *)view; 150 | - (CGFloat)offsetForItemAtIndex:(NSInteger)index; 151 | - (UIView *)itemViewAtPoint:(CGPoint)point; 152 | 153 | - (void)removeItemAtIndex:(NSInteger)index animated:(BOOL)animated; 154 | - (void)insertItemAtIndex:(NSInteger)index animated:(BOOL)animated; 155 | - (void)reloadItemAtIndex:(NSInteger)index animated:(BOOL)animated; 156 | 157 | - (void)reloadData; 158 | 159 | @end 160 | 161 | 162 | @protocol iCarouselDataSource 163 | 164 | - (NSInteger)numberOfItemsInCarousel:(iCarousel *)carousel; 165 | - (UIView *)carousel:(iCarousel *)carousel viewForItemAtIndex:(NSInteger)index reusingView:(UIView *)view; 166 | 167 | @optional 168 | 169 | - (NSInteger)numberOfPlaceholdersInCarousel:(iCarousel *)carousel; 170 | - (UIView *)carousel:(iCarousel *)carousel placeholderViewAtIndex:(NSInteger)index reusingView:(UIView *)view; 171 | 172 | @end 173 | 174 | 175 | @protocol iCarouselDelegate 176 | @optional 177 | 178 | - (void)carouselWillBeginScrollingAnimation:(iCarousel *)carousel; 179 | - (void)carouselDidEndScrollingAnimation:(iCarousel *)carousel; 180 | - (void)carouselDidScroll:(iCarousel *)carousel; 181 | - (void)carouselCurrentItemIndexDidChange:(iCarousel *)carousel; 182 | - (void)carouselWillBeginDragging:(iCarousel *)carousel; 183 | - (void)carouselDidEndDragging:(iCarousel *)carousel willDecelerate:(BOOL)decelerate; 184 | - (void)carouselWillBeginDecelerating:(iCarousel *)carousel; 185 | - (void)carouselDidEndDecelerating:(iCarousel *)carousel; 186 | 187 | - (BOOL)carousel:(iCarousel *)carousel shouldSelectItemAtIndex:(NSInteger)index; 188 | - (void)carousel:(iCarousel *)carousel didSelectItemAtIndex:(NSInteger)index; 189 | 190 | - (void)carouseldidTapInBlankArea:(iCarousel *)carousel; 191 | 192 | - (CGFloat)carouselItemWidth:(iCarousel *)carousel; 193 | - (CATransform3D)carousel:(iCarousel *)carousel itemTransformForOffset:(CGFloat)offset baseTransform:(CATransform3D)transform; 194 | - (CGFloat)carousel:(iCarousel *)carousel valueForOption:(iCarouselOption)option withDefault:(CGFloat)value; 195 | 196 | @end 197 | 198 | #pragma GCC diagnostic pop 199 | 200 | -------------------------------------------------------------------------------- /Preview/preview.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SergioChan/SCNavigationControlCenter/c03fe43a468af4232df9c09083d6ed9a5ba686bb/Preview/preview.gif -------------------------------------------------------------------------------- /Preview/preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SergioChan/SCNavigationControlCenter/c03fe43a468af4232df9c09083d6ed9a5ba686bb/Preview/preview.png -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # SCNavigationControlCenter 2 | This is an advanced navigation control center that can allow you to navigate to whichever view controller you want. 3 | iOS上的改进的导航栏控制中心。 4 | 5 | [![CI Status](http://img.shields.io/travis/Sergio Chan/SCNavigationControlCenter.svg?style=flat)](https://travis-ci.org/Sergio Chan/SCNavigationControlCenter) 6 | [![Version](https://img.shields.io/cocoapods/v/SCNavigationControlCenter.svg?style=flat)](http://cocoapods.org/pods/SCNavigationControlCenter) 7 | [![License](https://img.shields.io/cocoapods/l/SCNavigationControlCenter.svg?style=flat)](http://cocoapods.org/pods/SCNavigationControlCenter) 8 | [![Platform](https://img.shields.io/cocoapods/p/SCNavigationControlCenter.svg?style=flat)](http://cocoapods.org/pods/SCNavigationControlCenter) 9 | ## Preview 预览 10 | ![image](https://raw.githubusercontent.com/SergioChan/SCNavigationControlCenter/master/Preview/preview.png) 11 | 12 | ![image](https://raw.githubusercontent.com/SergioChan/SCNavigationControlCenter/master/Preview/preview.gif) 13 | 14 | ## Version 版本 15 | 0.1.5 16 | 17 | ## Usage 用法 18 | 19 | To run the example project, clone the repo, and run `pod install` from the Example directory first. 20 | 21 | This idea is originated from [In-App-Navigation-Improvement](https://dribbble.com/shots/2363812-In-App-Navigation-Improvement), since iOS9 has new multi-tasking control center, we are able to transfer the old style of navigation which you have to pop to root view by clicking Back button many times to a similar new one . You can now be able to pop to any previous view controller without clicking Back button for so many times. 22 | It's a simple improvement anyway. This library may only be suitable for massive and complicated project like Facebook, so I designed this library mostly for its coupling. Bringing this library into your project won't bring you extra work, you only need to implement a line of code in your navigation controller's `viewDidLoad` method as shown in the Demo. 23 | You can custom the entrance for triggering the control center. In the Demo, I will show you by long pressing the navigation Bar. You can simply custom the triggering by calling: 24 | 25 | ```Objective-C 26 | [[SCNavigationControlCenter sharedInstance] showWithNavigationController:self]; 27 | ``` 28 | 29 | 这个创意起源于[In-App-Navigation-Improvement](https://dribbble.com/shots/2363812-In-App-Navigation-Improvement),由于iOS9推出了新的多任务控制交互,我们可以将传统的一层一层手动返回navigation的逻辑修改为类似的交互。你可以在当前navigationController的视图栈中任意抽取控制器然后pop到那个控制器,而不用手动连续点按Back。这是一个很简单的交互改进。 30 | 由于这个控件可能只适用于规模较大,且页面逻辑极为庞大和复杂的项目,因此我在设计之初考虑的重点就是耦合性。集成这个控件不会给你的项目带去一丝一毫的影响和多余的工作量,你只需要在navigationController的`viewDidLoad`中加上demo中所示的一行代码,并且为控制中心的触发添加一个事件入口。在demo中我展示的是navigationBar长按触发,这个事件可以由你自定义,只要相同的调用 31 | 32 | ```Objective-C 33 | [[SCNavigationControlCenter sharedInstance] showWithNavigationController:self]; 34 | ``` 35 | 36 | 即可。进入控制中心页面后,你可以滑动所有视图控制器的列表,点击其中最上面的一个然后返回到这个控制器。也可以点击空白区域取消操作。对于现有的控制器无需任何改动。 37 | 38 | ## Requirements 环境 39 | iOS 8.0 Above 40 | 41 | ## Installation 如何集成 42 | 43 | SCNavigationControlCenter is available through [CocoaPods](http://cocoapods.org). To install 44 | it, simply add the following line to your Podfile: 45 | 46 | ```ruby 47 | pod "SCNavigationControlCenter" 48 | ``` 49 | 50 | ## Backlog 日志 51 | * v0.1.0 Basic Version 52 | * v0.1.1 Add demo project 53 | * v0.1.2 Add pop out animation 54 | * v0.1.3 Add appear animation 55 | * v0.1.5 Fix a memory issue 56 | --- 57 | 58 | * v0.1.0 基本版本 59 | * v0.1.1 添加示例程序 60 | * v0.1.2 添加弹出动画 61 | * v0.1.3 添加出现动画 62 | * v0.1.5 修复一个内存bug 63 | 64 | 65 | ## Author 66 | 67 | Sergio Chan, yuheng9211@qq.com 68 | 69 | ## License 70 | 71 | SCNavigationControlCenter is available under the MIT license. 72 | 73 | Permission is hereby granted, free of charge, to any person obtaining a copy 74 | of this software and associated documentation files (the "Software"), to deal 75 | in the Software without restriction, including without limitation the rights 76 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 77 | copies of the Software, and to permit persons to whom the Software is 78 | furnished to do so, subject to the following conditions: 79 | 80 | The above copyright notice and this permission notice shall be included in 81 | all copies or substantial portions of the Software. 82 | 83 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 84 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 85 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 86 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 87 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 88 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 89 | THE SOFTWARE. 90 | -------------------------------------------------------------------------------- /SCNavigationControlCenter.podspec: -------------------------------------------------------------------------------- 1 | # 2 | # Be sure to run `pod lib lint SCNavigationControlCenter.podspec' to ensure this is a 3 | # valid spec before submitting. 4 | # 5 | # Any lines starting with a # are optional, but their use is encouraged 6 | # To learn more about a Podspec see http://guides.cocoapods.org/syntax/podspec.html 7 | # 8 | 9 | Pod::Spec.new do |s| 10 | s.name = "SCNavigationControlCenter" 11 | s.version = "0.1.5" 12 | s.summary = "An advanced navigation controll center." 13 | 14 | # This description is used to generate tags and improve search results. 15 | # * Think: What does it do? Why did you write it? What is the focus? 16 | # * Try to keep it short, snappy and to the point. 17 | # * Write the description between the DESC delimiters below. 18 | # * Finally, don't worry about the indent, CocoaPods strips it! 19 | s.description = "An advanced navigation controll center similar to iOS 9 Multi-tasking." 20 | 21 | s.homepage = "https://github.com/SergioChan/SCNavigationControlCenter" 22 | # s.screenshots = "www.example.com/screenshots_1", "www.example.com/screenshots_2" 23 | s.license = 'MIT' 24 | s.author = { "Sergio Chan" => "yuheng9211@qq.com" } 25 | s.source = { :git => "https://github.com/SergioChan/SCNavigationControlCenter.git", :tag => s.version.to_s } 26 | # s.social_media_url = 'https://twitter.com/' 27 | 28 | s.platform = :ios, '8.0' 29 | s.requires_arc = true 30 | 31 | s.source_files = 'Pod/Classes/**/*' 32 | s.resource_bundles = { 33 | 'SCNavigationControlCenter' => ['Pod/Assets/*.png'] 34 | } 35 | 36 | # s.public_header_files = 'Pod/Classes/**/*.h' 37 | # s.frameworks = 'UIKit', 'MapKit' 38 | # s.dependency 'AFNetworking', '~> 2.3' 39 | end 40 | -------------------------------------------------------------------------------- /_Pods.xcodeproj: -------------------------------------------------------------------------------- 1 | Example/Pods/Pods.xcodeproj --------------------------------------------------------------------------------