Compare commits
110 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 9efb3a2eb7 | |||
| be7f93ce8c | |||
| d073bafd0b | |||
| 2c04699846 | |||
| 3ddfc086dd | |||
| bc2f906d26 | |||
| 6a15deb685 | |||
| aa0c777a81 | |||
| 2882c6ed69 | |||
| 3006780a84 | |||
| 49c09f0586 | |||
| 342189b6e0 | |||
| 5eb66f6fb5 | |||
| 995c5a5513 | |||
| 6904cf96a5 | |||
| 5dc7510804 | |||
| b42aa63728 | |||
| bf1ee34892 | |||
| 4bab50f2ec | |||
| cdbfa29c11 | |||
| 563097f845 | |||
| 30defb3edd | |||
| 1fabddd191 | |||
| 8d33009aec | |||
| af7ef6e828 | |||
| f13ab0900b | |||
| 2555a951e5 | |||
| e0042171f0 | |||
| 0947738ce4 | |||
| f964fda5bc | |||
| a2d2731afa | |||
| 73d13dd401 | |||
| 2f55ecb93f | |||
| b3cdebb476 | |||
| af0e1b28aa | |||
| 64235e64c7 | |||
| d16021859c | |||
| f33124d8a4 | |||
| 292844c894 | |||
| 386720542c | |||
| 16842741ca | |||
| f7cd8d4de4 | |||
| 9907570ca9 | |||
| 7c9cb6e6d9 | |||
| 2fc9119c91 | |||
| 08eba85cc1 | |||
| 1812a0306d | |||
| 87e71b55df | |||
| 23980f3f3a | |||
| 7cfc4e7152 | |||
| 4d6e72b169 | |||
| 21ce7b9b65 | |||
| 7f697e0a62 | |||
| 1c2c534c8e | |||
| 6535e6fa5d | |||
| 220d34e35b | |||
| 3e97ae9a67 | |||
| d90fb152d5 | |||
| fd1d25421e | |||
| 1137ce765f | |||
| 1011112bed | |||
| 140b25f96d | |||
| b11df07ecd | |||
| 6f69df07da | |||
| 5045c0933e | |||
| 83afcb3453 | |||
| 7b0d539f75 | |||
| 8ef85f4bdf | |||
| a71dc0e5a4 | |||
| da95232357 | |||
| 55ac3cb465 | |||
| c2720b29bb | |||
| 3e92810b6b | |||
| 549e106237 | |||
| 29919a48c1 | |||
| 85e9ad71e0 | |||
| fc5f8b6ae7 | |||
| 56e0454877 | |||
| 7075eeeee8 | |||
| feb6f40ed4 | |||
| 3ef077ee03 | |||
| 8d0fc29055 | |||
| ded79c57f8 | |||
| 0427d14a66 | |||
| 87acb45b51 | |||
| da5fde65dc | |||
| ca4a3eec59 | |||
| 073b440b2e | |||
| be5dcf0e71 | |||
| abf47af3a0 | |||
| e886b7ee9d | |||
| 9e5f4c3a9b | |||
| 912861c3c2 | |||
| 2ce3c530d0 | |||
| 7764635275 | |||
| c6bd3d85a8 | |||
| 4733501e56 | |||
| df6b401580 | |||
| 1c43dc8316 | |||
| 50eb4f6118 | |||
| 8852b680a3 | |||
| 37bed8284e | |||
| e161807bef | |||
| 9b0371b579 | |||
| 220dcd062d | |||
| 7c6d3c9652 | |||
| f10317cef2 | |||
| 74d58700d0 | |||
| a8621a582f | |||
| c615143b62 |
@@ -0,0 +1 @@
|
||||
4.2
|
||||
@@ -1,6 +1,11 @@
|
||||
osx_image: xcode7.2
|
||||
osx_image: xcode9.2
|
||||
language: objective-c
|
||||
|
||||
xcode_project: NavigationStackDemo.xcodeproj
|
||||
xcode_scheme: NavigationStack
|
||||
xcode_sdk: iphonesimulator
|
||||
xcode_sdk: iphonesimulator11.2
|
||||
|
||||
# whitelist
|
||||
branches:
|
||||
only:
|
||||
- master
|
||||
|
||||
|
After Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 17 KiB |
|
After Width: | Height: | Size: 10 KiB |
|
After Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 5.9 MiB |
@@ -1,12 +1,11 @@
|
||||
Pod::Spec.new do |s|
|
||||
s.name = 'Navigation-stack'
|
||||
s.version = '0.0.2'
|
||||
s.version = '3.1.0'
|
||||
s.summary = 'Show list of navigationControllers'
|
||||
s.license = 'MIT'
|
||||
s.homepage = 'https://github.com/Ramotion/navigation-stack'
|
||||
s.author = { 'Juri Vasylenko' => 'juri.v@ramotion.com' }
|
||||
s.ios.deployment_target = '9.0'
|
||||
s.ios.deployment_target = '10.0'
|
||||
s.source = { :git => 'https://github.com/Ramotion/navigation-stack.git', :tag => s.version.to_s }
|
||||
s.source_files = 'Source/**/*.swift'
|
||||
s.requires_arc = true
|
||||
end
|
||||
|
||||
@@ -13,12 +13,14 @@
|
||||
<key>CFBundleName</key>
|
||||
<string>$(PRODUCT_NAME)</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>BNDL</string>
|
||||
<string>FMWK</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.0</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1</string>
|
||||
<string>$(CURRENT_PROJECT_VERSION)</string>
|
||||
<key>NSPrincipalClass</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -0,0 +1,19 @@
|
||||
//
|
||||
// NavigationStack.h
|
||||
// NavigationStack
|
||||
//
|
||||
// Created by Alex K. on 01/06/16.
|
||||
// Copyright © 2016 Alex K. All rights reserved.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
//! Project version number for NavigationStack.
|
||||
FOUNDATION_EXPORT double NavigationStackVersionNumber;
|
||||
|
||||
//! Project version string for NavigationStack.
|
||||
FOUNDATION_EXPORT const unsigned char NavigationStackVersionString[];
|
||||
|
||||
// In this header, you should import all the public headers of your framework using statements like #import <NavigationStack/PublicHeader.h>
|
||||
|
||||
|
||||
@@ -3,31 +3,27 @@
|
||||
archiveVersion = 1;
|
||||
classes = {
|
||||
};
|
||||
objectVersion = 46;
|
||||
objectVersion = 47;
|
||||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
840D54101C8705FA00555605 /* FirstTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 840D540F1C8705FA00555605 /* FirstTableViewController.swift */; };
|
||||
842FF8E11C8707BD0030E758 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8444B0EF1C80238500B53B4E /* AppDelegate.swift */; };
|
||||
842FF8E51C8707DA0030E758 /* FirstTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 840D540F1C8705FA00555605 /* FirstTableViewController.swift */; };
|
||||
84368B3F1CFEDDB1007C4278 /* NavigationStack.h in Headers */ = {isa = PBXBuildFile; fileRef = 84368B3E1CFEDDB1007C4278 /* NavigationStack.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
84368B431CFEDDB1007C4278 /* NavigationStack.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 84368B3C1CFEDDB1007C4278 /* NavigationStack.framework */; };
|
||||
84368B441CFEDDB1007C4278 /* NavigationStack.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 84368B3C1CFEDDB1007C4278 /* NavigationStack.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
84368B491CFEDDBE007C4278 /* NavigationStack.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8444B1261C80250A00B53B4E /* NavigationStack.swift */; };
|
||||
84368B4A1CFEDDC5007C4278 /* CollectionStackViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8444B1231C80250A00B53B4E /* CollectionStackViewController.swift */; };
|
||||
84368B4B1CFEDDC9007C4278 /* CollectionViewStackFlowLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8444B1221C80250A00B53B4E /* CollectionViewStackFlowLayout.swift */; };
|
||||
84368B4C1CFEDDCE007C4278 /* CollectionViewStackCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8444B1201C80250A00B53B4E /* CollectionViewStackCell.swift */; };
|
||||
8444B0F01C80238500B53B4E /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8444B0EF1C80238500B53B4E /* AppDelegate.swift */; };
|
||||
8444B0F51C80238500B53B4E /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 8444B0F31C80238500B53B4E /* Main.storyboard */; };
|
||||
8444B0F71C80238500B53B4E /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 8444B0F61C80238500B53B4E /* Assets.xcassets */; };
|
||||
8444B0FA1C80238500B53B4E /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 8444B0F81C80238500B53B4E /* LaunchScreen.storyboard */; };
|
||||
8444B1051C80238500B53B4E /* NavigationStackDemoTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8444B1041C80238500B53B4E /* NavigationStackDemoTests.swift */; };
|
||||
8444B1271C80250A00B53B4E /* CollectionViewStackCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8444B1201C80250A00B53B4E /* CollectionViewStackCell.swift */; };
|
||||
8444B1281C80250A00B53B4E /* CollectionViewStackFlowLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8444B1221C80250A00B53B4E /* CollectionViewStackFlowLayout.swift */; };
|
||||
8444B1291C80250A00B53B4E /* CollectionStackViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8444B1231C80250A00B53B4E /* CollectionStackViewController.swift */; };
|
||||
8444B12B1C80250A00B53B4E /* NavigationStack.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8444B1261C80250A00B53B4E /* NavigationStack.swift */; };
|
||||
84500F201C87044100B0550E /* SecondViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 847B0FB01C846C6100E2C54D /* SecondViewController.swift */; };
|
||||
84500F221C87044500B0550E /* ThirdViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 847B0FAC1C846B9200E2C54D /* ThirdViewController.swift */; };
|
||||
84500F261C87044B00B0550E /* FifthViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 847B0FA81C846B8100E2C54D /* FifthViewController.swift */; };
|
||||
84500F281C87045000B0550E /* CollectionViewStackCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8444B1201C80250A00B53B4E /* CollectionViewStackCell.swift */; };
|
||||
84500F2A1C87045400B0550E /* CollectionViewStackFlowLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8444B1221C80250A00B53B4E /* CollectionViewStackFlowLayout.swift */; };
|
||||
84500F2C1C87045700B0550E /* CollectionStackViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8444B1231C80250A00B53B4E /* CollectionStackViewController.swift */; };
|
||||
84500F2E1C87045B00B0550E /* NavigationStack.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8444B1261C80250A00B53B4E /* NavigationStack.swift */; };
|
||||
846302891C8ABC340015CD81 /* OpenSans-Regular.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 846302881C8ABC340015CD81 /* OpenSans-Regular.ttf */; };
|
||||
8479994C1C870EB50050D164 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 8444B0F31C80238500B53B4E /* Main.storyboard */; };
|
||||
847B0FA91C846B8100E2C54D /* FifthViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 847B0FA81C846B8100E2C54D /* FifthViewController.swift */; };
|
||||
847B0FAD1C846B9200E2C54D /* ThirdViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 847B0FAC1C846B9200E2C54D /* ThirdViewController.swift */; };
|
||||
847B0FB11C846C6100E2C54D /* SecondViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 847B0FB01C846C6100E2C54D /* SecondViewController.swift */; };
|
||||
@@ -36,26 +32,40 @@
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXContainerItemProxy section */
|
||||
8444B1011C80238500B53B4E /* PBXContainerItemProxy */ = {
|
||||
84368B411CFEDDB1007C4278 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = 8444B0E41C80238500B53B4E /* Project object */;
|
||||
proxyType = 1;
|
||||
remoteGlobalIDString = 8444B0EB1C80238500B53B4E;
|
||||
remoteInfo = NavigationStackDemo;
|
||||
remoteGlobalIDString = 84368B3B1CFEDDB1007C4278;
|
||||
remoteInfo = NavigationStack;
|
||||
};
|
||||
/* End PBXContainerItemProxy section */
|
||||
|
||||
/* Begin PBXCopyFilesBuildPhase section */
|
||||
84368B481CFEDDB1007C4278 /* Embed Frameworks */ = {
|
||||
isa = PBXCopyFilesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
dstPath = "";
|
||||
dstSubfolderSpec = 10;
|
||||
files = (
|
||||
84368B441CFEDDB1007C4278 /* NavigationStack.framework in Embed Frameworks */,
|
||||
);
|
||||
name = "Embed Frameworks";
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXCopyFilesBuildPhase section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
840D540F1C8705FA00555605 /* FirstTableViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FirstTableViewController.swift; sourceTree = "<group>"; };
|
||||
8444B0EC1C80238500B53B4E /* NavigationStackDemo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = NavigationStackDemo.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
84368B3C1CFEDDB1007C4278 /* NavigationStack.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = NavigationStack.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
84368B3E1CFEDDB1007C4278 /* NavigationStack.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NavigationStack.h; sourceTree = "<group>"; };
|
||||
84368B401CFEDDB1007C4278 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||
8444B0EC1C80238500B53B4E /* Navigation Stack.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Navigation Stack.app"; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
8444B0EF1C80238500B53B4E /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
|
||||
8444B0F41C80238500B53B4E /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
|
||||
8444B0F61C80238500B53B4E /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
|
||||
8444B0F91C80238500B53B4E /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
|
||||
8444B0FB1C80238500B53B4E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||
8444B1001C80238500B53B4E /* NavigationStackDemoTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = NavigationStackDemoTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
8444B1041C80238500B53B4E /* NavigationStackDemoTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NavigationStackDemoTests.swift; sourceTree = "<group>"; };
|
||||
8444B1061C80238500B53B4E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||
8444B1201C80250A00B53B4E /* CollectionViewStackCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CollectionViewStackCell.swift; sourceTree = "<group>"; };
|
||||
8444B1221C80250A00B53B4E /* CollectionViewStackFlowLayout.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CollectionViewStackFlowLayout.swift; sourceTree = "<group>"; };
|
||||
8444B1231C80250A00B53B4E /* CollectionStackViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CollectionStackViewController.swift; sourceTree = "<group>"; };
|
||||
@@ -69,28 +79,38 @@
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
8444B0E91C80238500B53B4E /* Frameworks */ = {
|
||||
84368B381CFEDDB1007C4278 /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
8444B0FD1C80238500B53B4E /* Frameworks */ = {
|
||||
8444B0E91C80238500B53B4E /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
84368B431CFEDDB1007C4278 /* NavigationStack.framework in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXFrameworksBuildPhase section */
|
||||
|
||||
/* Begin PBXGroup section */
|
||||
84368B3D1CFEDDB1007C4278 /* NavigationStack */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
84368B3E1CFEDDB1007C4278 /* NavigationStack.h */,
|
||||
84368B401CFEDDB1007C4278 /* Info.plist */,
|
||||
);
|
||||
path = NavigationStack;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8444B0E31C80238500B53B4E = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8444B0EE1C80238500B53B4E /* NavigationStackDemo */,
|
||||
8444B1031C80238500B53B4E /* NavigationStackDemoTests */,
|
||||
84368B3D1CFEDDB1007C4278 /* NavigationStack */,
|
||||
8444B0ED1C80238500B53B4E /* Products */,
|
||||
);
|
||||
sourceTree = "<group>";
|
||||
@@ -98,8 +118,8 @@
|
||||
8444B0ED1C80238500B53B4E /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8444B0EC1C80238500B53B4E /* NavigationStackDemo.app */,
|
||||
8444B1001C80238500B53B4E /* NavigationStackDemoTests.xctest */,
|
||||
8444B0EC1C80238500B53B4E /* Navigation Stack.app */,
|
||||
84368B3C1CFEDDB1007C4278 /* NavigationStack.framework */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
@@ -118,15 +138,6 @@
|
||||
path = NavigationStackDemo;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8444B1031C80238500B53B4E /* NavigationStackDemoTests */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8444B1041C80238500B53B4E /* NavigationStackDemoTests.swift */,
|
||||
8444B1061C80238500B53B4E /* Info.plist */,
|
||||
);
|
||||
path = NavigationStackDemoTests;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8444B11D1C80247500B53B4E /* Source */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
@@ -219,7 +230,36 @@
|
||||
};
|
||||
/* End PBXGroup section */
|
||||
|
||||
/* Begin PBXHeadersBuildPhase section */
|
||||
84368B391CFEDDB1007C4278 /* Headers */ = {
|
||||
isa = PBXHeadersBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
84368B3F1CFEDDB1007C4278 /* NavigationStack.h in Headers */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXHeadersBuildPhase section */
|
||||
|
||||
/* Begin PBXNativeTarget section */
|
||||
84368B3B1CFEDDB1007C4278 /* NavigationStack */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 84368B471CFEDDB1007C4278 /* Build configuration list for PBXNativeTarget "NavigationStack" */;
|
||||
buildPhases = (
|
||||
84368B371CFEDDB1007C4278 /* Sources */,
|
||||
84368B381CFEDDB1007C4278 /* Frameworks */,
|
||||
84368B391CFEDDB1007C4278 /* Headers */,
|
||||
84368B3A1CFEDDB1007C4278 /* Resources */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
);
|
||||
name = NavigationStack;
|
||||
productName = NavigationStack;
|
||||
productReference = 84368B3C1CFEDDB1007C4278 /* NavigationStack.framework */;
|
||||
productType = "com.apple.product-type.framework";
|
||||
};
|
||||
8444B0EB1C80238500B53B4E /* NavigationStackDemo */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 8444B1141C80238500B53B4E /* Build configuration list for PBXNativeTarget "NavigationStackDemo" */;
|
||||
@@ -227,34 +267,18 @@
|
||||
8444B0E81C80238500B53B4E /* Sources */,
|
||||
8444B0E91C80238500B53B4E /* Frameworks */,
|
||||
8444B0EA1C80238500B53B4E /* Resources */,
|
||||
84368B481CFEDDB1007C4278 /* Embed Frameworks */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
84368B421CFEDDB1007C4278 /* PBXTargetDependency */,
|
||||
);
|
||||
name = NavigationStackDemo;
|
||||
productName = NavigationStackDemo;
|
||||
productReference = 8444B0EC1C80238500B53B4E /* NavigationStackDemo.app */;
|
||||
productReference = 8444B0EC1C80238500B53B4E /* Navigation Stack.app */;
|
||||
productType = "com.apple.product-type.application";
|
||||
};
|
||||
8444B0FF1C80238500B53B4E /* NavigationStackDemoTests */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 8444B1171C80238500B53B4E /* Build configuration list for PBXNativeTarget "NavigationStackDemoTests" */;
|
||||
buildPhases = (
|
||||
8444B0FC1C80238500B53B4E /* Sources */,
|
||||
8444B0FD1C80238500B53B4E /* Frameworks */,
|
||||
8444B0FE1C80238500B53B4E /* Resources */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
8444B1021C80238500B53B4E /* PBXTargetDependency */,
|
||||
);
|
||||
name = NavigationStackDemoTests;
|
||||
productName = NavigationStackDemoTests;
|
||||
productReference = 8444B1001C80238500B53B4E /* NavigationStackDemoTests.xctest */;
|
||||
productType = "com.apple.product-type.bundle.unit-test";
|
||||
};
|
||||
/* End PBXNativeTarget section */
|
||||
|
||||
/* Begin PBXProject section */
|
||||
@@ -262,22 +286,24 @@
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
LastSwiftUpdateCheck = 0720;
|
||||
LastUpgradeCheck = 0720;
|
||||
LastUpgradeCheck = 1110;
|
||||
ORGANIZATIONNAME = "Alex K.";
|
||||
TargetAttributes = {
|
||||
84368B3B1CFEDDB1007C4278 = {
|
||||
CreatedOnToolsVersion = 7.3.1;
|
||||
DevelopmentTeam = 34MUF9YXTA;
|
||||
LastSwiftMigration = 1020;
|
||||
};
|
||||
8444B0EB1C80238500B53B4E = {
|
||||
CreatedOnToolsVersion = 7.2.1;
|
||||
DevelopmentTeam = 34MUF9YXTA;
|
||||
};
|
||||
8444B0FF1C80238500B53B4E = {
|
||||
CreatedOnToolsVersion = 7.2.1;
|
||||
TestTargetID = 8444B0EB1C80238500B53B4E;
|
||||
LastSwiftMigration = 1020;
|
||||
};
|
||||
};
|
||||
};
|
||||
buildConfigurationList = 8444B0E71C80238500B53B4E /* Build configuration list for PBXProject "NavigationStackDemo" */;
|
||||
compatibilityVersion = "Xcode 3.2";
|
||||
developmentRegion = English;
|
||||
compatibilityVersion = "Xcode 6.3";
|
||||
developmentRegion = en;
|
||||
hasScannedForEncodings = 0;
|
||||
knownRegions = (
|
||||
en,
|
||||
@@ -289,12 +315,19 @@
|
||||
projectRoot = "";
|
||||
targets = (
|
||||
8444B0EB1C80238500B53B4E /* NavigationStackDemo */,
|
||||
8444B0FF1C80238500B53B4E /* NavigationStackDemoTests */,
|
||||
84368B3B1CFEDDB1007C4278 /* NavigationStack */,
|
||||
);
|
||||
};
|
||||
/* End PBXProject section */
|
||||
|
||||
/* Begin PBXResourcesBuildPhase section */
|
||||
84368B3A1CFEDDB1007C4278 /* Resources */ = {
|
||||
isa = PBXResourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
8444B0EA1C80238500B53B4E /* Resources */ = {
|
||||
isa = PBXResourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
@@ -308,17 +341,20 @@
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
8444B0FE1C80238500B53B4E /* Resources */ = {
|
||||
isa = PBXResourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
8479994C1C870EB50050D164 /* Main.storyboard in Resources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXResourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXSourcesBuildPhase section */
|
||||
84368B371CFEDDB1007C4278 /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
84368B491CFEDDBE007C4278 /* NavigationStack.swift in Sources */,
|
||||
84368B4C1CFEDDCE007C4278 /* CollectionViewStackCell.swift in Sources */,
|
||||
84368B4B1CFEDDC9007C4278 /* CollectionViewStackFlowLayout.swift in Sources */,
|
||||
84368B4A1CFEDDC5007C4278 /* CollectionStackViewController.swift in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
8444B0E81C80238500B53B4E /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
@@ -335,30 +371,13 @@
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
8444B0FC1C80238500B53B4E /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
84500F2E1C87045B00B0550E /* NavigationStack.swift in Sources */,
|
||||
84500F201C87044100B0550E /* SecondViewController.swift in Sources */,
|
||||
84500F221C87044500B0550E /* ThirdViewController.swift in Sources */,
|
||||
8444B1051C80238500B53B4E /* NavigationStackDemoTests.swift in Sources */,
|
||||
84500F2C1C87045700B0550E /* CollectionStackViewController.swift in Sources */,
|
||||
84500F281C87045000B0550E /* CollectionViewStackCell.swift in Sources */,
|
||||
842FF8E51C8707DA0030E758 /* FirstTableViewController.swift in Sources */,
|
||||
84500F2A1C87045400B0550E /* CollectionViewStackFlowLayout.swift in Sources */,
|
||||
842FF8E11C8707BD0030E758 /* AppDelegate.swift in Sources */,
|
||||
84500F261C87044B00B0550E /* FifthViewController.swift in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXSourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXTargetDependency section */
|
||||
8444B1021C80238500B53B4E /* PBXTargetDependency */ = {
|
||||
84368B421CFEDDB1007C4278 /* PBXTargetDependency */ = {
|
||||
isa = PBXTargetDependency;
|
||||
target = 8444B0EB1C80238500B53B4E /* NavigationStackDemo */;
|
||||
targetProxy = 8444B1011C80238500B53B4E /* PBXContainerItemProxy */;
|
||||
target = 84368B3B1CFEDDB1007C4278 /* NavigationStack */;
|
||||
targetProxy = 84368B411CFEDDB1007C4278 /* PBXContainerItemProxy */;
|
||||
};
|
||||
/* End PBXTargetDependency section */
|
||||
|
||||
@@ -382,6 +401,56 @@
|
||||
/* End PBXVariantGroup section */
|
||||
|
||||
/* Begin XCBuildConfiguration section */
|
||||
84368B451CFEDDB1007C4278 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
CLANG_ANALYZER_NONNULL = YES;
|
||||
CODE_SIGN_IDENTITY = "";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
|
||||
CURRENT_PROJECT_VERSION = 1;
|
||||
DEFINES_MODULE = YES;
|
||||
DYLIB_COMPATIBILITY_VERSION = 1;
|
||||
DYLIB_CURRENT_VERSION = 1;
|
||||
DYLIB_INSTALL_NAME_BASE = "@rpath";
|
||||
INFOPLIST_FILE = NavigationStack/Info.plist;
|
||||
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.ramotion.NavigationStack;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SKIP_INSTALL = YES;
|
||||
SWIFT_VERSION = 5.0;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
VERSIONING_SYSTEM = "apple-generic";
|
||||
VERSION_INFO_PREFIX = "";
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
84368B461CFEDDB1007C4278 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
CLANG_ANALYZER_NONNULL = YES;
|
||||
CODE_SIGN_IDENTITY = "";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
|
||||
CURRENT_PROJECT_VERSION = 1;
|
||||
DEFINES_MODULE = YES;
|
||||
DYLIB_COMPATIBILITY_VERSION = 1;
|
||||
DYLIB_CURRENT_VERSION = 1;
|
||||
DYLIB_INSTALL_NAME_BASE = "@rpath";
|
||||
INFOPLIST_FILE = NavigationStack/Info.plist;
|
||||
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.ramotion.NavigationStack;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SKIP_INSTALL = YES;
|
||||
SWIFT_VERSION = 5.0;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
VERSIONING_SYSTEM = "apple-generic";
|
||||
VERSION_INFO_PREFIX = "";
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
8444B1121C80238500B53B4E /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
@@ -390,13 +459,23 @@
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
|
||||
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||
CLANG_WARN_COMMA = YES;
|
||||
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
|
||||
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
||||
CLANG_WARN_EMPTY_BODY = YES;
|
||||
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||
CLANG_WARN_INFINITE_RECURSION = YES;
|
||||
CLANG_WARN_INT_CONVERSION = YES;
|
||||
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
|
||||
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
||||
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
|
||||
CLANG_WARN_STRICT_PROTOTYPES = YES;
|
||||
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
@@ -418,7 +497,7 @@
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 9.2;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 12.2;
|
||||
MTL_ENABLE_DEBUG_INFO = YES;
|
||||
ONLY_ACTIVE_ARCH = YES;
|
||||
SDKROOT = iphoneos;
|
||||
@@ -434,13 +513,23 @@
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
|
||||
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||
CLANG_WARN_COMMA = YES;
|
||||
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
|
||||
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
||||
CLANG_WARN_EMPTY_BODY = YES;
|
||||
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||
CLANG_WARN_INFINITE_RECURSION = YES;
|
||||
CLANG_WARN_INT_CONVERSION = YES;
|
||||
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
|
||||
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
||||
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
|
||||
CLANG_WARN_STRICT_PROTOTYPES = YES;
|
||||
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
@@ -456,9 +545,10 @@
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 9.2;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 12.2;
|
||||
MTL_ENABLE_DEBUG_INFO = NO;
|
||||
SDKROOT = iphoneos;
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
|
||||
VALIDATE_PRODUCT = YES;
|
||||
};
|
||||
name = Release;
|
||||
@@ -466,56 +556,45 @@
|
||||
8444B1151C80238500B53B4E /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
INFOPLIST_FILE = NavigationStackDemo/Info.plist;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.ramotion.NavigationStackDemo;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
PRODUCT_NAME = "Navigation Stack";
|
||||
SWIFT_VERSION = 5.0;
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
8444B1161C80238500B53B4E /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
INFOPLIST_FILE = NavigationStackDemo/Info.plist;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.ramotion.NavigationStackDemo;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
8444B1181C80238500B53B4E /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
BUNDLE_LOADER = "$(TEST_HOST)";
|
||||
INFOPLIST_FILE = NavigationStackDemoTests/Info.plist;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.ramotion.NavigationStackDemoTests;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/NavigationStackDemo.app/NavigationStackDemo";
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
8444B1191C80238500B53B4E /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
BUNDLE_LOADER = "$(TEST_HOST)";
|
||||
INFOPLIST_FILE = NavigationStackDemoTests/Info.plist;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.ramotion.NavigationStackDemoTests;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/NavigationStackDemo.app/NavigationStackDemo";
|
||||
PRODUCT_NAME = "Navigation Stack";
|
||||
SWIFT_VERSION = 5.0;
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
/* End XCBuildConfiguration section */
|
||||
|
||||
/* Begin XCConfigurationList section */
|
||||
84368B471CFEDDB1007C4278 /* Build configuration list for PBXNativeTarget "NavigationStack" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
84368B451CFEDDB1007C4278 /* Debug */,
|
||||
84368B461CFEDDB1007C4278 /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
8444B0E71C80238500B53B4E /* Build configuration list for PBXProject "NavigationStackDemo" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
@@ -534,15 +613,6 @@
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
8444B1171C80238500B53B4E /* Build configuration list for PBXNativeTarget "NavigationStackDemoTests" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
8444B1181C80238500B53B4E /* Debug */,
|
||||
8444B1191C80238500B53B4E /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
/* End XCConfigurationList section */
|
||||
};
|
||||
rootObject = 8444B0E41C80238500B53B4E /* Project object */;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "0720"
|
||||
LastUpgradeVersion = "1110"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
@@ -14,9 +14,9 @@
|
||||
buildForAnalyzing = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "8444B0EB1C80238500B53B4E"
|
||||
BuildableName = "NavigationStackDemo.app"
|
||||
BlueprintName = "NavigationStackDemo"
|
||||
BlueprintIdentifier = "84368B3B1CFEDDB1007C4278"
|
||||
BuildableName = "NavigationStack.framework"
|
||||
BlueprintName = "NavigationStack"
|
||||
ReferencedContainer = "container:NavigationStackDemo.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildActionEntry>
|
||||
@@ -28,28 +28,7 @@
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES">
|
||||
<Testables>
|
||||
<TestableReference
|
||||
skipped = "NO">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "8444B0FF1C80238500B53B4E"
|
||||
BuildableName = "NavigationStackDemoTests.xctest"
|
||||
BlueprintName = "NavigationStackDemoTests"
|
||||
ReferencedContainer = "container:NavigationStackDemo.xcodeproj">
|
||||
</BuildableReference>
|
||||
</TestableReference>
|
||||
</Testables>
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "8444B0EB1C80238500B53B4E"
|
||||
BuildableName = "NavigationStackDemo.app"
|
||||
BlueprintName = "NavigationStackDemo"
|
||||
ReferencedContainer = "container:NavigationStackDemo.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
<AdditionalOptions>
|
||||
</AdditionalOptions>
|
||||
</TestAction>
|
||||
<LaunchAction
|
||||
buildConfiguration = "Debug"
|
||||
@@ -61,18 +40,15 @@
|
||||
debugDocumentVersioning = "YES"
|
||||
debugServiceExtension = "internal"
|
||||
allowLocationSimulation = "YES">
|
||||
<BuildableProductRunnable
|
||||
runnableDebuggingMode = "0">
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "8444B0EB1C80238500B53B4E"
|
||||
BuildableName = "NavigationStackDemo.app"
|
||||
BlueprintName = "NavigationStackDemo"
|
||||
BlueprintIdentifier = "84368B3B1CFEDDB1007C4278"
|
||||
BuildableName = "NavigationStack.framework"
|
||||
BlueprintName = "NavigationStack"
|
||||
ReferencedContainer = "container:NavigationStackDemo.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildableProductRunnable>
|
||||
<AdditionalOptions>
|
||||
</AdditionalOptions>
|
||||
</MacroExpansion>
|
||||
</LaunchAction>
|
||||
<ProfileAction
|
||||
buildConfiguration = "Release"
|
||||
@@ -80,16 +56,15 @@
|
||||
savedToolIdentifier = ""
|
||||
useCustomWorkingDirectory = "NO"
|
||||
debugDocumentVersioning = "YES">
|
||||
<BuildableProductRunnable
|
||||
runnableDebuggingMode = "0">
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "8444B0EB1C80238500B53B4E"
|
||||
BuildableName = "NavigationStackDemo.app"
|
||||
BlueprintName = "NavigationStackDemo"
|
||||
BlueprintIdentifier = "84368B3B1CFEDDB1007C4278"
|
||||
BuildableName = "NavigationStack.framework"
|
||||
BlueprintName = "NavigationStack"
|
||||
ReferencedContainer = "container:NavigationStackDemo.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildableProductRunnable>
|
||||
</MacroExpansion>
|
||||
</ProfileAction>
|
||||
<AnalyzeAction
|
||||
buildConfiguration = "Debug">
|
||||
|
||||
@@ -27,43 +27,17 @@ import UIKit
|
||||
@UIApplicationMain
|
||||
class AppDelegate: UIResponder, UIApplicationDelegate {
|
||||
|
||||
var window: UIWindow?
|
||||
var window: UIWindow?
|
||||
|
||||
func application(_ : UIApplication, didFinishLaunchingWithOptions _: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
|
||||
|
||||
UIApplication.shared.statusBarStyle = .lightContent
|
||||
|
||||
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
|
||||
// Override point for customization after application launch.
|
||||
UIApplication.sharedApplication().statusBarStyle = .LightContent
|
||||
|
||||
UINavigationBar.appearance().titleTextAttributes = [
|
||||
NSForegroundColorAttributeName : UIColor.whiteColor(),
|
||||
NSFontAttributeName : UIFont(name: "OpenSans-Semibold", size: 16)!
|
||||
]
|
||||
|
||||
return true
|
||||
}
|
||||
|
||||
func applicationWillResignActive(application: UIApplication) {
|
||||
// Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
|
||||
// Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game.
|
||||
}
|
||||
|
||||
func applicationDidEnterBackground(application: UIApplication) {
|
||||
// Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
|
||||
// If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
|
||||
}
|
||||
|
||||
func applicationWillEnterForeground(application: UIApplication) {
|
||||
// Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background.
|
||||
}
|
||||
|
||||
func applicationDidBecomeActive(application: UIApplication) {
|
||||
// Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
|
||||
}
|
||||
|
||||
func applicationWillTerminate(application: UIApplication) {
|
||||
// Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
|
||||
}
|
||||
|
||||
UINavigationBar.appearance().titleTextAttributes = [
|
||||
NSAttributedString.Key.foregroundColor: UIColor.white,
|
||||
NSAttributedString.Key.font: UIFont(name: "OpenSans-Semibold", size: 16)!,
|
||||
]
|
||||
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,38 +1,119 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"size" : "20x20",
|
||||
"idiom" : "iphone",
|
||||
"filename" : "icon-40.png",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"size" : "20x20",
|
||||
"idiom" : "iphone",
|
||||
"filename" : "icon-60.png",
|
||||
"scale" : "3x"
|
||||
},
|
||||
{
|
||||
"size" : "29x29",
|
||||
"idiom" : "iphone",
|
||||
"filename" : "icon-58.png",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "iphone",
|
||||
"size" : "29x29",
|
||||
"idiom" : "iphone",
|
||||
"filename" : "icon-87.png",
|
||||
"scale" : "3x"
|
||||
},
|
||||
{
|
||||
"idiom" : "iphone",
|
||||
"size" : "40x40",
|
||||
"idiom" : "iphone",
|
||||
"filename" : "icon-80.png",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "iphone",
|
||||
"size" : "40x40",
|
||||
"idiom" : "iphone",
|
||||
"filename" : "icon-120.png",
|
||||
"scale" : "3x"
|
||||
},
|
||||
{
|
||||
"idiom" : "iphone",
|
||||
"size" : "60x60",
|
||||
"idiom" : "iphone",
|
||||
"filename" : "icon-120.png",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "iphone",
|
||||
"size" : "60x60",
|
||||
"idiom" : "iphone",
|
||||
"filename" : "icon-180.png",
|
||||
"scale" : "3x"
|
||||
},
|
||||
{
|
||||
"size" : "20x20",
|
||||
"idiom" : "ipad",
|
||||
"filename" : "icon-20.png",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"size" : "20x20",
|
||||
"idiom" : "ipad",
|
||||
"filename" : "icon-40.png",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"size" : "29x29",
|
||||
"idiom" : "ipad",
|
||||
"filename" : "icon-29.png",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"size" : "29x29",
|
||||
"idiom" : "ipad",
|
||||
"filename" : "icon-58.png",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"size" : "40x40",
|
||||
"idiom" : "ipad",
|
||||
"filename" : "icon-40.png",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"size" : "40x40",
|
||||
"idiom" : "ipad",
|
||||
"filename" : "icon-80.png",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"size" : "76x76",
|
||||
"idiom" : "ipad",
|
||||
"filename" : "icon-76.png",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"size" : "76x76",
|
||||
"idiom" : "ipad",
|
||||
"filename" : "icon-152.png",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"size" : "83.5x83.5",
|
||||
"idiom" : "ipad",
|
||||
"filename" : "icon-167.png",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"size" : "1024x1024",
|
||||
"idiom" : "ios-marketing",
|
||||
"filename" : "Ramotion.png",
|
||||
"scale" : "1x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
},
|
||||
"properties" : {
|
||||
"pre-rendered" : true
|
||||
}
|
||||
}
|
||||
|
After Width: | Height: | Size: 52 KiB |
|
After Width: | Height: | Size: 2.1 KiB |
|
After Width: | Height: | Size: 2.7 KiB |
|
After Width: | Height: | Size: 3.0 KiB |
|
After Width: | Height: | Size: 3.4 KiB |
|
After Width: | Height: | Size: 475 B |
|
After Width: | Height: | Size: 620 B |
|
After Width: | Height: | Size: 792 B |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 1.6 KiB |
@@ -1,8 +1,13 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="9532" systemVersion="15D21" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES" initialViewController="01J-lp-oVM">
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="13771" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES" colorMatched="YES" initialViewController="01J-lp-oVM">
|
||||
<device id="retina4_7" orientation="portrait">
|
||||
<adaptation id="fullscreen"/>
|
||||
</device>
|
||||
<dependencies>
|
||||
<deployment identifier="iOS"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="9530"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="13772"/>
|
||||
<capability name="Constraints to layout margins" minToolsVersion="6.0"/>
|
||||
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
||||
</dependencies>
|
||||
<scenes>
|
||||
<!--View Controller-->
|
||||
@@ -14,14 +19,35 @@
|
||||
<viewControllerLayoutGuide type="bottom" id="xb3-aO-Qok"/>
|
||||
</layoutGuides>
|
||||
<view key="view" contentMode="scaleToFill" id="Ze5-6b-2t3">
|
||||
<rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
|
||||
<subviews>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text=" Copyright (c) 2018 Ramotion. All rights reserved." textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="fcf-sN-ku0">
|
||||
<rect key="frame" x="16" y="630" width="343" height="17"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<nil key="textColor"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Navigation Stack" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="bCd-3b-lHA">
|
||||
<rect key="frame" x="118.5" y="323" width="139" height="21"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="17"/>
|
||||
<nil key="textColor"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
</subviews>
|
||||
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<constraints>
|
||||
<constraint firstItem="fcf-sN-ku0" firstAttribute="leading" secondItem="Ze5-6b-2t3" secondAttribute="leadingMargin" id="811-hI-Egq"/>
|
||||
<constraint firstItem="bCd-3b-lHA" firstAttribute="centerY" secondItem="Ze5-6b-2t3" secondAttribute="centerY" id="T4x-O3-JqD"/>
|
||||
<constraint firstItem="bCd-3b-lHA" firstAttribute="centerX" secondItem="Ze5-6b-2t3" secondAttribute="centerX" id="VFr-tp-sPw"/>
|
||||
<constraint firstItem="fcf-sN-ku0" firstAttribute="trailing" secondItem="Ze5-6b-2t3" secondAttribute="trailingMargin" id="dS9-pv-ebe"/>
|
||||
<constraint firstItem="xb3-aO-Qok" firstAttribute="top" secondItem="fcf-sN-ku0" secondAttribute="bottom" constant="20" id="kbD-dX-t3N"/>
|
||||
</constraints>
|
||||
</view>
|
||||
</viewController>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="iYj-Kq-Ea1" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
||||
</objects>
|
||||
<point key="canvasLocation" x="53" y="375"/>
|
||||
<point key="canvasLocation" x="52" y="374.66266866566718"/>
|
||||
</scene>
|
||||
</scenes>
|
||||
</document>
|
||||
|
||||
@@ -1,85 +1,54 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="9532" systemVersion="15D21" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" initialViewController="wMY-lE-9QR">
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="11201" systemVersion="15G1004" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES" initialViewController="wMY-lE-9QR">
|
||||
<dependencies>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="9530"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="11161"/>
|
||||
<capability name="Constraints to layout margins" minToolsVersion="6.0"/>
|
||||
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
||||
</dependencies>
|
||||
<customFonts key="customFonts">
|
||||
<mutableArray key="OpenSans-Light.ttf">
|
||||
<array key="OpenSans-Light.ttf">
|
||||
<string>OpenSans-Light</string>
|
||||
<string>OpenSans-Light</string>
|
||||
<string>OpenSans-Light</string>
|
||||
<string>OpenSans-Light</string>
|
||||
<string>OpenSans-Light</string>
|
||||
<string>OpenSans-Light</string>
|
||||
<string>OpenSans-Light</string>
|
||||
<string>OpenSans-Light</string>
|
||||
<string>OpenSans-Light</string>
|
||||
<string>OpenSans-Light</string>
|
||||
<string>OpenSans-Light</string>
|
||||
<string>OpenSans-Light</string>
|
||||
<string>OpenSans-Light</string>
|
||||
<string>OpenSans-Light</string>
|
||||
<string>OpenSans-Light</string>
|
||||
</mutableArray>
|
||||
<mutableArray key="OpenSans-Regular.ttf">
|
||||
</array>
|
||||
<array key="OpenSans-Regular.ttf">
|
||||
<string>OpenSans</string>
|
||||
<string>OpenSans</string>
|
||||
<string>OpenSans</string>
|
||||
<string>OpenSans</string>
|
||||
<string>OpenSans</string>
|
||||
<string>OpenSans</string>
|
||||
<string>OpenSans</string>
|
||||
<string>OpenSans</string>
|
||||
<string>OpenSans</string>
|
||||
<string>OpenSans</string>
|
||||
<string>OpenSans</string>
|
||||
<string>OpenSans</string>
|
||||
<string>OpenSans</string>
|
||||
<string>OpenSans</string>
|
||||
<string>OpenSans</string>
|
||||
<string>OpenSans</string>
|
||||
</mutableArray>
|
||||
</array>
|
||||
</customFonts>
|
||||
<scenes>
|
||||
<!--First Table View Controller-->
|
||||
<scene sceneID="zrp-LL-QbY">
|
||||
<objects>
|
||||
<tableViewController id="9Ct-AB-DOc" customClass="FirstTableViewController" customModule="NavigationStackDemo" customModuleProvider="target" sceneMemberID="viewController">
|
||||
<tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" showsHorizontalScrollIndicator="NO" showsVerticalScrollIndicator="NO" dataMode="static" style="plain" separatorStyle="default" showsSelectionImmediatelyOnTouchBegin="NO" rowHeight="64" sectionHeaderHeight="28" sectionFooterHeight="28" id="Lgh-Yx-2dK">
|
||||
<rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
|
||||
<tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" showsHorizontalScrollIndicator="NO" showsVerticalScrollIndicator="NO" dataMode="static" style="plain" separatorStyle="default" rowHeight="64" sectionHeaderHeight="28" sectionFooterHeight="28" id="Lgh-Yx-2dK">
|
||||
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<color key="separatorColor" red="0.95686274509803915" green="0.95686274509803915" blue="0.95686274509803915" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<color key="separatorColor" red="0.95686274509803915" green="0.95686274509803915" blue="0.95686274509803915" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<inset key="separatorInset" minX="0.0" minY="0.0" maxX="0.0" maxY="0.0"/>
|
||||
<sections>
|
||||
<tableViewSection id="4mD-ri-97w">
|
||||
<cells>
|
||||
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="none" indentationWidth="10" reuseIdentifier="TableViewCell" id="59u-SR-oNQ">
|
||||
<rect key="frame" x="0.0" y="64" width="600" height="64"/>
|
||||
<rect key="frame" x="0.0" y="64" width="375" height="64"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="59u-SR-oNQ" id="hiY-tO-ckv">
|
||||
<rect key="frame" x="0.0" y="0.0" width="600" height="63"/>
|
||||
<frame key="frameInset" width="375" height="63"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon-0" translatesAutoresizingMaskIntoConstraints="NO" id="bPQ-Ya-DTi">
|
||||
<rect key="frame" x="14" y="9" width="45" height="45"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="45" id="9K6-ja-zvM"/>
|
||||
<constraint firstAttribute="height" constant="45" id="EaY-Tn-Pzw"/>
|
||||
</constraints>
|
||||
</imageView>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Annie Yates" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="gHN-5I-Euu">
|
||||
<rect key="frame" x="69" y="21" width="83" height="22"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" relation="lessThanOrEqual" constant="525" id="gR3-6f-9H3"/>
|
||||
</constraints>
|
||||
<fontDescription key="fontDescription" name="OpenSans-Light" family="Open Sans" pointSize="16"/>
|
||||
<color key="textColor" red="0.36078431372549019" green="0.41176470588235292" blue="0.52156862745098043" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<color key="textColor" red="0.36078431372549019" green="0.41176470588235292" blue="0.52156862745098043" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="Arrow" translatesAutoresizingMaskIntoConstraints="NO" id="KvJ-Hu-ZQk">
|
||||
<rect key="frame" x="578" y="26" width="7" height="11"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="11" id="lXe-WV-qKz"/>
|
||||
<constraint firstAttribute="width" constant="7" id="m4K-gg-16v"/>
|
||||
@@ -97,30 +66,27 @@
|
||||
</tableViewCellContentView>
|
||||
</tableViewCell>
|
||||
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="none" indentationWidth="10" reuseIdentifier="TableViewCell" id="RFb-Tu-umA">
|
||||
<rect key="frame" x="0.0" y="128" width="600" height="64"/>
|
||||
<rect key="frame" x="0.0" y="128" width="375" height="64"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="RFb-Tu-umA" id="gLu-T1-5C4">
|
||||
<rect key="frame" x="0.0" y="0.0" width="600" height="63"/>
|
||||
<frame key="frameInset" width="375" height="63"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon-1" translatesAutoresizingMaskIntoConstraints="NO" id="Iat-we-zIn">
|
||||
<rect key="frame" x="14" y="9" width="45" height="45"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="45" id="GpC-2U-V4z"/>
|
||||
<constraint firstAttribute="height" constant="45" id="fCk-mr-GWf"/>
|
||||
</constraints>
|
||||
</imageView>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Mabelle Mills" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ZbE-gE-eBC">
|
||||
<rect key="frame" x="69" y="21" width="93" height="22"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" relation="lessThanOrEqual" constant="525" id="Z8t-77-CEn"/>
|
||||
</constraints>
|
||||
<fontDescription key="fontDescription" name="OpenSans-Light" family="Open Sans" pointSize="16"/>
|
||||
<color key="textColor" red="0.36078431370000003" green="0.41176470590000003" blue="0.52156862749999999" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<color key="textColor" red="0.36078431370000003" green="0.41176470590000003" blue="0.52156862749999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="Arrow" translatesAutoresizingMaskIntoConstraints="NO" id="miO-D8-3i1">
|
||||
<rect key="frame" x="578" y="26" width="7" height="11"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="11" id="EW5-4E-nW2"/>
|
||||
<constraint firstAttribute="width" constant="7" id="h7k-SP-Nw8"/>
|
||||
@@ -138,30 +104,27 @@
|
||||
</tableViewCellContentView>
|
||||
</tableViewCell>
|
||||
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="none" indentationWidth="10" reuseIdentifier="TableViewCell" id="NI2-l6-2e8">
|
||||
<rect key="frame" x="0.0" y="192" width="600" height="64"/>
|
||||
<rect key="frame" x="0.0" y="192" width="375" height="64"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="NI2-l6-2e8" id="HBr-9p-MVd">
|
||||
<rect key="frame" x="0.0" y="0.0" width="600" height="63"/>
|
||||
<frame key="frameInset" width="375" height="63"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon-2" translatesAutoresizingMaskIntoConstraints="NO" id="Zph-bv-YK7">
|
||||
<rect key="frame" x="14" y="9" width="45" height="45"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="45" id="7Yu-zn-grO"/>
|
||||
<constraint firstAttribute="width" constant="45" id="S3D-Hm-cbI"/>
|
||||
</constraints>
|
||||
</imageView>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Isaiah Byrd" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="EjK-7R-pCk">
|
||||
<rect key="frame" x="69" y="21" width="79" height="22"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" relation="lessThanOrEqual" constant="525" id="Xri-iA-1Yd"/>
|
||||
</constraints>
|
||||
<fontDescription key="fontDescription" name="OpenSans-Light" family="Open Sans" pointSize="16"/>
|
||||
<color key="textColor" red="0.36078431370000003" green="0.41176470590000003" blue="0.52156862749999999" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<color key="textColor" red="0.36078431370000003" green="0.41176470590000003" blue="0.52156862749999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="Arrow" translatesAutoresizingMaskIntoConstraints="NO" id="mtz-F1-UgJ">
|
||||
<rect key="frame" x="578" y="26" width="7" height="11"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="7" id="i37-dp-Hv1"/>
|
||||
<constraint firstAttribute="height" constant="11" id="vow-yN-nMr"/>
|
||||
@@ -179,30 +142,27 @@
|
||||
</tableViewCellContentView>
|
||||
</tableViewCell>
|
||||
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="none" indentationWidth="10" reuseIdentifier="TableViewCell" id="QB7-YF-opV">
|
||||
<rect key="frame" x="0.0" y="256" width="600" height="64"/>
|
||||
<rect key="frame" x="0.0" y="256" width="375" height="64"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="QB7-YF-opV" id="bFZ-pp-GDK">
|
||||
<rect key="frame" x="0.0" y="0.0" width="600" height="63"/>
|
||||
<frame key="frameInset" width="375" height="63"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon-3" translatesAutoresizingMaskIntoConstraints="NO" id="OW6-Z2-YBS">
|
||||
<rect key="frame" x="14" y="9" width="45" height="45"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="45" id="fbv-hh-MQf"/>
|
||||
<constraint firstAttribute="width" constant="45" id="qI1-gn-CVu"/>
|
||||
</constraints>
|
||||
</imageView>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Ramotion" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="1op-NG-ytg">
|
||||
<rect key="frame" x="69" y="21" width="70" height="22"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" relation="lessThanOrEqual" constant="525" id="qOa-f6-KeW"/>
|
||||
</constraints>
|
||||
<fontDescription key="fontDescription" name="OpenSans-Light" family="Open Sans" pointSize="16"/>
|
||||
<color key="textColor" red="0.36078431370000003" green="0.41176470590000003" blue="0.52156862749999999" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<color key="textColor" red="0.36078431370000003" green="0.41176470590000003" blue="0.52156862749999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="Arrow" translatesAutoresizingMaskIntoConstraints="NO" id="e1g-uL-tfy">
|
||||
<rect key="frame" x="578" y="26" width="7" height="11"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="7" id="08A-Oc-K7i"/>
|
||||
<constraint firstAttribute="height" constant="11" id="5vS-tQ-rj3"/>
|
||||
@@ -220,30 +180,27 @@
|
||||
</tableViewCellContentView>
|
||||
</tableViewCell>
|
||||
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="none" indentationWidth="10" reuseIdentifier="TableViewCell" id="PPj-u3-njz">
|
||||
<rect key="frame" x="0.0" y="320" width="600" height="64"/>
|
||||
<rect key="frame" x="0.0" y="320" width="375" height="64"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="PPj-u3-njz" id="a9E-vV-VyR">
|
||||
<rect key="frame" x="0.0" y="0.0" width="600" height="63"/>
|
||||
<frame key="frameInset" width="375" height="63"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon-4" translatesAutoresizingMaskIntoConstraints="NO" id="bNP-Bo-o6w">
|
||||
<rect key="frame" x="14" y="9" width="45" height="45"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="45" id="98p-h7-K8f"/>
|
||||
<constraint firstAttribute="width" constant="45" id="tkV-r5-Yh8"/>
|
||||
</constraints>
|
||||
</imageView>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Carrie Hudson" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="j7Y-Qj-aA5">
|
||||
<rect key="frame" x="69" y="21" width="105" height="22"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" relation="lessThanOrEqual" constant="525" id="2ca-CH-qbC"/>
|
||||
</constraints>
|
||||
<fontDescription key="fontDescription" name="OpenSans-Light" family="Open Sans" pointSize="16"/>
|
||||
<color key="textColor" red="0.36078431370000003" green="0.41176470590000003" blue="0.52156862749999999" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<color key="textColor" red="0.36078431370000003" green="0.41176470590000003" blue="0.52156862749999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="Arrow" translatesAutoresizingMaskIntoConstraints="NO" id="avO-ce-d6m">
|
||||
<rect key="frame" x="578" y="26" width="7" height="11"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="11" id="5Xi-Kv-5H6"/>
|
||||
<constraint firstAttribute="width" constant="7" id="g3G-6n-xbl"/>
|
||||
@@ -269,11 +226,7 @@
|
||||
</connections>
|
||||
</tableView>
|
||||
<toolbarItems/>
|
||||
<navigationItem key="navigationItem" id="Avt-G1-zNd">
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="boolean" keyPath="displaysSearchBarInNavigationBar" value="YES"/>
|
||||
</userDefinedRuntimeAttributes>
|
||||
</navigationItem>
|
||||
<navigationItem key="navigationItem" id="Avt-G1-zNd"/>
|
||||
<connections>
|
||||
<outlet property="search" destination="w8B-dB-9wA" id="nwS-76-4cb"/>
|
||||
<segue destination="iaH-ZQ-ay5" kind="show" identifier="push" id="HYI-Ga-o9f"/>
|
||||
@@ -286,54 +239,51 @@
|
||||
<textInputTraits key="textInputTraits"/>
|
||||
</searchBar>
|
||||
</objects>
|
||||
<point key="canvasLocation" x="1232" y="1139"/>
|
||||
<point key="canvasLocation" x="1014" y="1137"/>
|
||||
</scene>
|
||||
<!--Sally Friends-->
|
||||
<scene sceneID="C7N-bv-xZB">
|
||||
<objects>
|
||||
<tableViewController id="Y7k-xx-h5q" customClass="FifthViewController" customModule="NavigationStackDemo" customModuleProvider="target" sceneMemberID="viewController">
|
||||
<tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" showsHorizontalScrollIndicator="NO" showsVerticalScrollIndicator="NO" dataMode="static" style="plain" separatorStyle="default" showsSelectionImmediatelyOnTouchBegin="NO" rowHeight="64" sectionHeaderHeight="28" sectionFooterHeight="28" id="rQI-9Z-buC">
|
||||
<rect key="frame" x="0.0" y="0.0" width="600" height="651"/>
|
||||
<tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" showsHorizontalScrollIndicator="NO" showsVerticalScrollIndicator="NO" dataMode="static" style="plain" separatorStyle="default" rowHeight="64" sectionHeaderHeight="28" sectionFooterHeight="28" id="rQI-9Z-buC">
|
||||
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<gestureRecognizers/>
|
||||
<color key="separatorColor" red="0.95686274510000002" green="0.95686274510000002" blue="0.95686274510000002" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<color key="separatorColor" red="0.95686274510000002" green="0.95686274510000002" blue="0.95686274510000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<inset key="separatorInset" minX="0.0" minY="0.0" maxX="0.0" maxY="0.0"/>
|
||||
<sections>
|
||||
<tableViewSection id="U4h-gN-n02">
|
||||
<cells>
|
||||
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="none" indentationWidth="10" reuseIdentifier="TableViewCell" id="Fm4-oL-SWk">
|
||||
<rect key="frame" x="0.0" y="64" width="600" height="64"/>
|
||||
<rect key="frame" x="0.0" y="64" width="375" height="64"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="Fm4-oL-SWk" id="UJs-lN-KSp">
|
||||
<rect key="frame" x="0.0" y="0.0" width="600" height="63"/>
|
||||
<frame key="frameInset" width="375" height="63"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="Fifth-Icon-0" translatesAutoresizingMaskIntoConstraints="NO" id="ORf-X7-gzN">
|
||||
<rect key="frame" x="14" y="9" width="45" height="45"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="45" id="9iZ-bw-EeU"/>
|
||||
<constraint firstAttribute="width" constant="45" id="NBI-cD-Ru0"/>
|
||||
</constraints>
|
||||
</imageView>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Millie Burton" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="2Cx-bX-nb2">
|
||||
<rect key="frame" x="69" y="21" width="92" height="22"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" relation="lessThanOrEqual" constant="525" id="lL0-gA-TC4"/>
|
||||
</constraints>
|
||||
<fontDescription key="fontDescription" name="OpenSans-Light" family="Open Sans" pointSize="16"/>
|
||||
<color key="textColor" red="0.36078431370000003" green="0.41176470590000003" blue="0.52156862749999999" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<color key="textColor" red="0.36078431370000003" green="0.41176470590000003" blue="0.52156862749999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="cq9-qg-Grq">
|
||||
<rect key="frame" x="513" y="15" width="72" height="34"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="72" id="2Ia-4A-Nd5"/>
|
||||
<constraint firstAttribute="height" constant="34" id="CAm-wn-7hC"/>
|
||||
</constraints>
|
||||
<fontDescription key="fontDescription" name="OpenSans" family="Open Sans" pointSize="14"/>
|
||||
<state key="normal" title="Invite" backgroundImage="ButtonBorder">
|
||||
<color key="titleColor" red="0.36078431372549019" green="0.41176470588235292" blue="0.52156862745098043" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<color key="titleColor" red="0.36078431372549019" green="0.41176470588235292" blue="0.52156862745098043" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
</state>
|
||||
</button>
|
||||
</subviews>
|
||||
@@ -348,37 +298,34 @@
|
||||
</tableViewCellContentView>
|
||||
</tableViewCell>
|
||||
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="none" indentationWidth="10" reuseIdentifier="TableViewCell" id="Dub-7K-o5o">
|
||||
<rect key="frame" x="0.0" y="128" width="600" height="64"/>
|
||||
<rect key="frame" x="0.0" y="128" width="375" height="64"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="Dub-7K-o5o" id="56f-3M-2qf">
|
||||
<rect key="frame" x="0.0" y="0.0" width="600" height="63"/>
|
||||
<frame key="frameInset" width="375" height="63"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="Fifth-Icon-1" translatesAutoresizingMaskIntoConstraints="NO" id="eJm-tM-0xh">
|
||||
<rect key="frame" x="14" y="9" width="45" height="45"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="45" id="Mer-9g-gAn"/>
|
||||
<constraint firstAttribute="height" constant="45" id="WJr-4v-Vr2"/>
|
||||
</constraints>
|
||||
</imageView>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Isaiah Byrd" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Ujo-Pe-HGu">
|
||||
<rect key="frame" x="69" y="21" width="79" height="22"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" relation="lessThanOrEqual" constant="525" id="nCg-6A-MYS"/>
|
||||
</constraints>
|
||||
<fontDescription key="fontDescription" name="OpenSans-Light" family="Open Sans" pointSize="16"/>
|
||||
<color key="textColor" red="0.36078431370000003" green="0.41176470590000003" blue="0.52156862749999999" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<color key="textColor" red="0.36078431370000003" green="0.41176470590000003" blue="0.52156862749999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="vZa-nK-CCF">
|
||||
<rect key="frame" x="513" y="15" width="72" height="34"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="34" id="sh8-i0-16p"/>
|
||||
<constraint firstAttribute="width" constant="72" id="weN-aO-GhB"/>
|
||||
</constraints>
|
||||
<fontDescription key="fontDescription" name="OpenSans" family="Open Sans" pointSize="14"/>
|
||||
<state key="normal" title="Invite" backgroundImage="ButtonBorder">
|
||||
<color key="titleColor" red="0.36078431370000003" green="0.41176470590000003" blue="0.52156862749999999" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<color key="titleColor" red="0.36078431370000003" green="0.41176470590000003" blue="0.52156862749999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
</state>
|
||||
</button>
|
||||
</subviews>
|
||||
@@ -393,37 +340,34 @@
|
||||
</tableViewCellContentView>
|
||||
</tableViewCell>
|
||||
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="none" indentationWidth="10" reuseIdentifier="TableViewCell" id="8PZ-4X-bFa">
|
||||
<rect key="frame" x="0.0" y="192" width="600" height="64"/>
|
||||
<rect key="frame" x="0.0" y="192" width="375" height="64"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="8PZ-4X-bFa" id="upV-M3-tcx">
|
||||
<rect key="frame" x="0.0" y="0.0" width="600" height="63"/>
|
||||
<frame key="frameInset" width="375" height="63"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="Fifth-Icon-2" translatesAutoresizingMaskIntoConstraints="NO" id="mpo-Gf-2rW">
|
||||
<rect key="frame" x="14" y="9" width="45" height="45"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="45" id="CZs-XA-1La"/>
|
||||
<constraint firstAttribute="height" constant="45" id="fwV-mJ-dwf"/>
|
||||
</constraints>
|
||||
</imageView>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Raymond Tucker" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="mYj-le-ZE9">
|
||||
<rect key="frame" x="69" y="21" width="119" height="22"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" relation="lessThanOrEqual" constant="525" id="JCI-VY-PKr"/>
|
||||
</constraints>
|
||||
<fontDescription key="fontDescription" name="OpenSans-Light" family="Open Sans" pointSize="16"/>
|
||||
<color key="textColor" red="0.36078431370000003" green="0.41176470590000003" blue="0.52156862749999999" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<color key="textColor" red="0.36078431370000003" green="0.41176470590000003" blue="0.52156862749999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="6Un-Wk-B9e">
|
||||
<rect key="frame" x="513" y="15" width="72" height="34"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="72" id="4F9-TW-ebh"/>
|
||||
<constraint firstAttribute="height" constant="34" id="htO-xj-2v8"/>
|
||||
</constraints>
|
||||
<fontDescription key="fontDescription" name="OpenSans" family="Open Sans" pointSize="14"/>
|
||||
<state key="normal" title="Invite" backgroundImage="ButtonBorder">
|
||||
<color key="titleColor" red="0.36078431370000003" green="0.41176470590000003" blue="0.52156862749999999" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<color key="titleColor" red="0.36078431370000003" green="0.41176470590000003" blue="0.52156862749999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
</state>
|
||||
</button>
|
||||
</subviews>
|
||||
@@ -438,37 +382,34 @@
|
||||
</tableViewCellContentView>
|
||||
</tableViewCell>
|
||||
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="none" indentationWidth="10" reuseIdentifier="TableViewCell" id="b45-nI-yBc">
|
||||
<rect key="frame" x="0.0" y="256" width="600" height="64"/>
|
||||
<rect key="frame" x="0.0" y="256" width="375" height="64"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="b45-nI-yBc" id="8Bg-uW-EBP">
|
||||
<rect key="frame" x="0.0" y="0.0" width="600" height="63"/>
|
||||
<frame key="frameInset" width="375" height="63"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="Fifth-Icon-3" translatesAutoresizingMaskIntoConstraints="NO" id="maf-Qg-fhA">
|
||||
<rect key="frame" x="14" y="9" width="45" height="45"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="45" id="8ee-dD-Jgr"/>
|
||||
<constraint firstAttribute="width" constant="45" id="x7K-rf-jlr"/>
|
||||
</constraints>
|
||||
</imageView>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Ian Haynes" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="HdW-L1-UK2">
|
||||
<rect key="frame" x="69" y="21" width="80" height="22"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" relation="lessThanOrEqual" constant="525" id="LQZ-JM-zAA"/>
|
||||
</constraints>
|
||||
<fontDescription key="fontDescription" name="OpenSans-Light" family="Open Sans" pointSize="16"/>
|
||||
<color key="textColor" red="0.36078431370000003" green="0.41176470590000003" blue="0.52156862749999999" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<color key="textColor" red="0.36078431370000003" green="0.41176470590000003" blue="0.52156862749999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="x31-0N-Wk4">
|
||||
<rect key="frame" x="513" y="15" width="72" height="34"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="34" id="2Ga-wi-s3I"/>
|
||||
<constraint firstAttribute="width" constant="72" id="qW1-34-N9V"/>
|
||||
</constraints>
|
||||
<fontDescription key="fontDescription" name="OpenSans" family="Open Sans" pointSize="14"/>
|
||||
<state key="normal" title="Invite" backgroundImage="ButtonBorder">
|
||||
<color key="titleColor" red="0.36078431370000003" green="0.41176470590000003" blue="0.52156862749999999" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<color key="titleColor" red="0.36078431370000003" green="0.41176470590000003" blue="0.52156862749999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
</state>
|
||||
</button>
|
||||
</subviews>
|
||||
@@ -493,7 +434,7 @@
|
||||
<toolbarItems/>
|
||||
<navigationItem key="navigationItem" title="Sally Friends" id="zMg-jd-dHX">
|
||||
<barButtonItem key="leftBarButtonItem" image="backButton" id="4Af-Xf-z75">
|
||||
<color key="tintColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<color key="tintColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<connections>
|
||||
<action selector="backHandler:" destination="Y7k-xx-h5q" id="smv-wd-MTx"/>
|
||||
</connections>
|
||||
@@ -502,78 +443,69 @@
|
||||
</tableViewController>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="R6v-A6-DcN" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
||||
</objects>
|
||||
<point key="canvasLocation" x="3985" y="1164.5"/>
|
||||
<point key="canvasLocation" x="4079" y="1137"/>
|
||||
</scene>
|
||||
<!--Ramotion-->
|
||||
<scene sceneID="fes-48-lfd">
|
||||
<objects>
|
||||
<tableViewController automaticallyAdjustsScrollViewInsets="NO" id="iaH-ZQ-ay5" customClass="SecondViewController" customModule="NavigationStackDemo" customModuleProvider="target" sceneMemberID="viewController">
|
||||
<tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" showsHorizontalScrollIndicator="NO" showsVerticalScrollIndicator="NO" dataMode="static" style="plain" separatorStyle="default" showsSelectionImmediatelyOnTouchBegin="NO" rowHeight="64" sectionHeaderHeight="28" sectionFooterHeight="28" id="l7k-CH-0RZ">
|
||||
<rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
|
||||
<tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" showsHorizontalScrollIndicator="NO" showsVerticalScrollIndicator="NO" dataMode="static" style="plain" separatorStyle="default" rowHeight="64" sectionHeaderHeight="28" sectionFooterHeight="28" id="l7k-CH-0RZ">
|
||||
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<color key="separatorColor" red="0.95686274510000002" green="0.95686274510000002" blue="0.95686274510000002" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<color key="separatorColor" red="0.95686274510000002" green="0.95686274510000002" blue="0.95686274510000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<inset key="separatorInset" minX="0.0" minY="0.0" maxX="0.0" maxY="0.0"/>
|
||||
<sections>
|
||||
<tableViewSection id="G4S-Ar-7kx">
|
||||
<cells>
|
||||
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="none" indentationWidth="10" reuseIdentifier="TableViewCell" rowHeight="406" id="vIk-Xx-2cC">
|
||||
<rect key="frame" x="0.0" y="0.0" width="600" height="406"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="375" height="406"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="vIk-Xx-2cC" id="HSV-R2-Hw7">
|
||||
<rect key="frame" x="0.0" y="0.0" width="600" height="405"/>
|
||||
<frame key="frameInset" width="375" height="405"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="BridgeImage" translatesAutoresizingMaskIntoConstraints="NO" id="wyr-9m-ibm">
|
||||
<rect key="frame" x="0.0" y="0.0" width="600" height="405"/>
|
||||
</imageView>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="BridgeImage" translatesAutoresizingMaskIntoConstraints="NO" id="wyr-9m-ibm"/>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="8gC-RP-EBQ" userLabel="ContainerView">
|
||||
<rect key="frame" x="200" y="89" width="200" height="280"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="RamotionBig" translatesAutoresizingMaskIntoConstraints="NO" id="a3b-No-X0O">
|
||||
<rect key="frame" x="28" y="0.0" width="145" height="145"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="145" id="7fr-hK-bHl"/>
|
||||
<constraint firstAttribute="height" constant="145" id="dcc-xd-LKe"/>
|
||||
</constraints>
|
||||
</imageView>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Ramotion" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Z9O-r8-63x">
|
||||
<rect key="frame" x="59" y="157" width="82" height="25"/>
|
||||
<fontDescription key="fontDescription" name="OpenSans" family="Open Sans" pointSize="18"/>
|
||||
<color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="PinIcon" translatesAutoresizingMaskIntoConstraints="NO" id="iBz-MQ-eUa">
|
||||
<rect key="frame" x="80" y="240" width="40" height="40"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="40" id="GRI-8s-EA6"/>
|
||||
<constraint firstAttribute="width" constant="40" id="k8e-Ux-i3y"/>
|
||||
</constraints>
|
||||
</imageView>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="PersonIcon" translatesAutoresizingMaskIntoConstraints="NO" id="AWH-ql-SQz">
|
||||
<rect key="frame" x="4" y="240" width="40" height="40"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="40" id="a43-vc-Erz"/>
|
||||
<constraint firstAttribute="height" constant="40" id="fCI-aa-kiJ"/>
|
||||
</constraints>
|
||||
</imageView>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="PinIcon" translatesAutoresizingMaskIntoConstraints="NO" id="ist-ma-HD4">
|
||||
<rect key="frame" x="156" y="240" width="40" height="40"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="40" id="Psv-Rm-NVJ"/>
|
||||
<constraint firstAttribute="height" constant="40" id="mru-we-yaw"/>
|
||||
</constraints>
|
||||
</imageView>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="QZj-NI-Jg7">
|
||||
<rect key="frame" x="56" y="185" width="89" height="39"/>
|
||||
<string key="text">San Francisco
|
||||
USA</string>
|
||||
<fontDescription key="fontDescription" name="OpenSans" family="Open Sans" pointSize="14"/>
|
||||
<color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
</subviews>
|
||||
<color key="backgroundColor" red="0.23941160257975691" green="0.89475203036425932" blue="1" alpha="0.0" colorSpace="calibratedRGB"/>
|
||||
<color key="backgroundColor" red="0.23941160257975691" green="0.89475203036425932" blue="1" alpha="0.0" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<constraints>
|
||||
<constraint firstItem="QZj-NI-Jg7" firstAttribute="centerX" secondItem="8gC-RP-EBQ" secondAttribute="centerX" id="3bJ-nE-wvx"/>
|
||||
<constraint firstItem="iBz-MQ-eUa" firstAttribute="leading" secondItem="AWH-ql-SQz" secondAttribute="trailing" constant="36" id="6gJ-qd-IRu"/>
|
||||
@@ -603,30 +535,27 @@ USA</string>
|
||||
</tableViewCellContentView>
|
||||
</tableViewCell>
|
||||
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="none" indentationWidth="10" reuseIdentifier="TableViewCell" rowHeight="155" id="mpc-fs-zs1">
|
||||
<rect key="frame" x="0.0" y="406" width="600" height="155"/>
|
||||
<rect key="frame" x="0.0" y="406" width="375" height="155"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="mpc-fs-zs1" id="GOo-LD-cA4">
|
||||
<rect key="frame" x="0.0" y="0.0" width="600" height="154"/>
|
||||
<frame key="frameInset" width="375" height="154"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="HeadnImage" translatesAutoresizingMaskIntoConstraints="NO" id="rhG-XC-8so">
|
||||
<rect key="frame" x="20" y="15" width="57" height="57"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="57" id="IBd-Iz-JwF"/>
|
||||
<constraint firstAttribute="width" constant="57" id="lgm-ne-Yot"/>
|
||||
</constraints>
|
||||
</imageView>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Enhance Your Life By Having A Sense Of Purpose" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="gyf-EF-9zK">
|
||||
<rect key="frame" x="87" y="15" width="505" height="57"/>
|
||||
<fontDescription key="fontDescription" name="OpenSans" family="Open Sans" pointSize="16"/>
|
||||
<color key="textColor" red="0.36078431372549019" green="0.41176470588235292" blue="0.52156862745098043" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<color key="textColor" red="0.36078431372549019" green="0.41176470588235292" blue="0.52156862745098043" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" textAlignment="justified" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="E8g-LD-agg">
|
||||
<rect key="frame" x="20" y="73" width="560" height="81"/>
|
||||
<string key="text">At about this time of year, some months after New Year’s resolutions have been made and kept, or made and neglected, one thing is undeniable: we</string>
|
||||
<fontDescription key="fontDescription" name="OpenSans-Light" family="Open Sans" pointSize="14"/>
|
||||
<color key="textColor" red="0.36078431370000003" green="0.41176470590000003" blue="0.52156862749999999" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<color key="textColor" red="0.36078431370000003" green="0.41176470590000003" blue="0.52156862749999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
</subviews>
|
||||
@@ -645,30 +574,27 @@ USA</string>
|
||||
</tableViewCellContentView>
|
||||
</tableViewCell>
|
||||
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="none" indentationWidth="10" reuseIdentifier="TableViewCell" rowHeight="155" id="NtI-T3-9m3">
|
||||
<rect key="frame" x="0.0" y="561" width="600" height="155"/>
|
||||
<rect key="frame" x="0.0" y="561" width="375" height="155"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="NtI-T3-9m3" id="g6I-4w-9aJ">
|
||||
<rect key="frame" x="0.0" y="0.0" width="600" height="154"/>
|
||||
<frame key="frameInset" width="375" height="154"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="PCImage" translatesAutoresizingMaskIntoConstraints="NO" id="vy3-Pw-Sm1">
|
||||
<rect key="frame" x="20" y="15" width="57" height="57"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="57" id="7i2-Wu-xVf"/>
|
||||
<constraint firstAttribute="height" constant="57" id="tn2-OI-N0Y"/>
|
||||
</constraints>
|
||||
</imageView>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Control Your Own Level Of Motivation" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="5BI-98-AtN">
|
||||
<rect key="frame" x="87" y="15" width="505" height="57"/>
|
||||
<fontDescription key="fontDescription" name="OpenSans" family="Open Sans" pointSize="16"/>
|
||||
<color key="textColor" red="0.36078431370000003" green="0.41176470590000003" blue="0.52156862749999999" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<color key="textColor" red="0.36078431370000003" green="0.41176470590000003" blue="0.52156862749999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" textAlignment="justified" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="eB7-Zg-qYc">
|
||||
<rect key="frame" x="20" y="73" width="560" height="81"/>
|
||||
<string key="text">At about this time of year, some months after New Year’s resolutions have been made and kept, or made and neglected, one thing is undeniable: we</string>
|
||||
<fontDescription key="fontDescription" name="OpenSans-Light" family="Open Sans" pointSize="14"/>
|
||||
<color key="textColor" red="0.36078431370000003" green="0.41176470590000003" blue="0.52156862749999999" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<color key="textColor" red="0.36078431370000003" green="0.41176470590000003" blue="0.52156862749999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
</subviews>
|
||||
@@ -687,30 +613,27 @@ USA</string>
|
||||
</tableViewCellContentView>
|
||||
</tableViewCell>
|
||||
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="none" indentationWidth="10" reuseIdentifier="TableViewCell" rowHeight="155" id="x6S-m0-obK">
|
||||
<rect key="frame" x="0.0" y="716" width="600" height="155"/>
|
||||
<rect key="frame" x="0.0" y="716" width="375" height="155"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="x6S-m0-obK" id="ga4-9k-oyq">
|
||||
<rect key="frame" x="0.0" y="0.0" width="600" height="154"/>
|
||||
<frame key="frameInset" width="375" height="154"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="HeadnImage" translatesAutoresizingMaskIntoConstraints="NO" id="iMx-CI-izM">
|
||||
<rect key="frame" x="20" y="15" width="57" height="57"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="57" id="1Cs-CD-stY"/>
|
||||
<constraint firstAttribute="width" constant="57" id="4ff-pw-A3k"/>
|
||||
</constraints>
|
||||
</imageView>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Enhance Your Life By Having A Sense Of Purpose" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="zOb-9O-2eq">
|
||||
<rect key="frame" x="87" y="15" width="505" height="57"/>
|
||||
<fontDescription key="fontDescription" name="OpenSans" family="Open Sans" pointSize="16"/>
|
||||
<color key="textColor" red="0.36078431370000003" green="0.41176470590000003" blue="0.52156862749999999" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<color key="textColor" red="0.36078431370000003" green="0.41176470590000003" blue="0.52156862749999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" textAlignment="justified" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="47b-fv-wTs">
|
||||
<rect key="frame" x="20" y="73" width="560" height="81"/>
|
||||
<string key="text">At about this time of year, some months after New Year’s resolutions have been made and kept, or made and neglected, one thing is undeniable: we</string>
|
||||
<fontDescription key="fontDescription" name="OpenSans-Light" family="Open Sans" pointSize="14"/>
|
||||
<color key="textColor" red="0.36078431370000003" green="0.41176470590000003" blue="0.52156862749999999" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<color key="textColor" red="0.36078431370000003" green="0.41176470590000003" blue="0.52156862749999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
</subviews>
|
||||
@@ -738,7 +661,7 @@ USA</string>
|
||||
</tableView>
|
||||
<navigationItem key="navigationItem" title="Ramotion" id="Ufe-Ky-cPA">
|
||||
<barButtonItem key="leftBarButtonItem" image="backButton" id="3or-01-oV6">
|
||||
<color key="tintColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<color key="tintColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<connections>
|
||||
<action selector="backHandler:" destination="iaH-ZQ-ay5" id="DZv-HC-MAX"/>
|
||||
</connections>
|
||||
@@ -750,7 +673,7 @@ USA</string>
|
||||
</tableViewController>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="RMN-Cf-ufd" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
||||
</objects>
|
||||
<point key="canvasLocation" x="1936" y="1139"/>
|
||||
<point key="canvasLocation" x="1710" y="1137"/>
|
||||
</scene>
|
||||
<!--Navigation Stack-->
|
||||
<scene sceneID="K61-fl-adJ">
|
||||
@@ -767,7 +690,7 @@ USA</string>
|
||||
<nil name="viewControllers"/>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="color" keyPath="bgColor">
|
||||
<color key="value" red="0.77254901960784317" green="0.80000000000000004" blue="0.85098039215686272" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<color key="value" red="0.77254901960784317" green="0.80000000000000004" blue="0.85098039215686272" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
</userDefinedRuntimeAttribute>
|
||||
<userDefinedRuntimeAttribute type="number" keyPath="decelerationRate">
|
||||
<real key="value" value="0.80000000000000004"/>
|
||||
@@ -779,50 +702,47 @@ USA</string>
|
||||
</navigationController>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="H6O-0Z-S0q" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
||||
</objects>
|
||||
<point key="canvasLocation" x="535" y="1139"/>
|
||||
<point key="canvasLocation" x="236" y="1138"/>
|
||||
</scene>
|
||||
<!--Post-->
|
||||
<scene sceneID="MGp-L7-zcj">
|
||||
<objects>
|
||||
<tableViewController id="nzl-xt-jfq" customClass="ThirdViewController" customModule="NavigationStackDemo" customModuleProvider="target" sceneMemberID="viewController">
|
||||
<tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" showsHorizontalScrollIndicator="NO" showsVerticalScrollIndicator="NO" dataMode="static" style="plain" separatorStyle="default" showsSelectionImmediatelyOnTouchBegin="NO" rowHeight="64" sectionHeaderHeight="28" sectionFooterHeight="28" id="s5T-Kh-5vE">
|
||||
<rect key="frame" x="0.0" y="0.0" width="600" height="651"/>
|
||||
<tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" showsHorizontalScrollIndicator="NO" showsVerticalScrollIndicator="NO" dataMode="static" style="plain" separatorStyle="default" rowHeight="64" sectionHeaderHeight="28" sectionFooterHeight="28" id="s5T-Kh-5vE">
|
||||
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<color key="separatorColor" red="0.95686274510000002" green="0.95686274510000002" blue="0.95686274510000002" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<color key="separatorColor" red="0.95686274510000002" green="0.95686274510000002" blue="0.95686274510000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<inset key="separatorInset" minX="0.0" minY="0.0" maxX="0.0" maxY="0.0"/>
|
||||
<sections>
|
||||
<tableViewSection id="j16-dA-5FE">
|
||||
<cells>
|
||||
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="none" indentationWidth="10" reuseIdentifier="TableViewCell" rowHeight="495" id="eSp-bc-oLs">
|
||||
<rect key="frame" x="0.0" y="64" width="600" height="495"/>
|
||||
<rect key="frame" x="0.0" y="64" width="375" height="495"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="eSp-bc-oLs" id="gp3-hH-62A">
|
||||
<rect key="frame" x="0.0" y="0.0" width="600" height="494"/>
|
||||
<frame key="frameInset" width="375" height="494"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="HeadnImage" translatesAutoresizingMaskIntoConstraints="NO" id="crB-kN-Kfj">
|
||||
<rect key="frame" x="20" y="15" width="57" height="57"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="57" id="9Za-dD-S8g"/>
|
||||
<constraint firstAttribute="height" constant="57" id="AX1-LJ-Zr9"/>
|
||||
</constraints>
|
||||
</imageView>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Enhance Your Life By Having A Sense Of Purpose" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="FfW-EB-0i9">
|
||||
<rect key="frame" x="87" y="15" width="505" height="57"/>
|
||||
<fontDescription key="fontDescription" name="OpenSans" family="Open Sans" pointSize="16"/>
|
||||
<color key="textColor" red="0.36078431370000003" green="0.41176470590000003" blue="0.52156862749999999" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<color key="textColor" red="0.36078431370000003" green="0.41176470590000003" blue="0.52156862749999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" textAlignment="justified" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="MZY-t1-gAo">
|
||||
<rect key="frame" x="20" y="73" width="560" height="421"/>
|
||||
<string key="text">At about this time of year, some months after New Year’s resolutions have been made and kept, or made and neglected, one thing is undeniable: we have a chance to learn and grow every day, no matter what we did not do yesterday or neglected to do last week. Make Use of This Moment
|
||||
|
||||
Making use of this moment, of the NOW, is a principle that stress management experts, psycho-therapists, meditators, and many authors such as Dr. Wayne Dyer, Jon Kabat-Zinn, and Eckhart Tolle have been talking and writing about for years.
|
||||
|
||||
The only moment, the only life we have is in the NOW. What happened a few moments or several years ago is gone, what will happen this evening, or next month when we go on holidays is not here yet. Thus, if we live our lives thinking about past events or future possibilities, we are literally not living our life. Developing Flow.</string>
|
||||
<fontDescription key="fontDescription" name="OpenSans-Light" family="Open Sans" pointSize="14"/>
|
||||
<color key="textColor" red="0.36078431370000003" green="0.41176470590000003" blue="0.52156862749999999" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<color key="textColor" red="0.36078431370000003" green="0.41176470590000003" blue="0.52156862749999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
</subviews>
|
||||
@@ -841,36 +761,32 @@ The only moment, the only life we have is in the NOW. What happened a few moment
|
||||
</tableViewCellContentView>
|
||||
</tableViewCell>
|
||||
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="none" indentationWidth="10" reuseIdentifier="TableViewCell" rowHeight="100" id="gSh-oV-BT0">
|
||||
<rect key="frame" x="0.0" y="559" width="600" height="100"/>
|
||||
<rect key="frame" x="0.0" y="559" width="375" height="100"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="gSh-oV-BT0" id="V8F-nf-rD7">
|
||||
<rect key="frame" x="0.0" y="0.0" width="600" height="99"/>
|
||||
<frame key="frameInset" width="375" height="99"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="girsl" translatesAutoresizingMaskIntoConstraints="NO" id="Ob0-rV-71Z">
|
||||
<rect key="frame" x="20" y="15" width="57" height="57"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="57" id="QxV-Wp-qTI"/>
|
||||
<constraint firstAttribute="height" constant="57" id="v9v-SZ-rdw"/>
|
||||
</constraints>
|
||||
</imageView>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="BGmessage" translatesAutoresizingMaskIntoConstraints="NO" id="Bei-S2-Qmi">
|
||||
<rect key="frame" x="87" y="20" width="211" height="47"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="47" id="5G2-qn-r9g"/>
|
||||
<constraint firstAttribute="width" constant="211" id="lZb-eU-H3j"/>
|
||||
</constraints>
|
||||
</imageView>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Perfect post, really thanks !" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="k7p-An-UPP">
|
||||
<rect key="frame" x="87" y="20" width="211" height="47"/>
|
||||
<fontDescription key="fontDescription" name="OpenSans" family="Open Sans" pointSize="14"/>
|
||||
<color key="textColor" red="0.36078431372549019" green="0.41176470588235292" blue="0.52156862745098043" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<color key="textColor" red="0.36078431372549019" green="0.41176470588235292" blue="0.52156862745098043" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="01:PM" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Sjl-dU-8u5">
|
||||
<rect key="frame" x="303" y="50" width="35" height="17"/>
|
||||
<fontDescription key="fontDescription" name="OpenSans" family="Open Sans" pointSize="12"/>
|
||||
<color key="textColor" red="0.36470588235294116" green="0.4392156862745098" blue="0.58823529411764708" alpha="0.2993559966216216" colorSpace="calibratedRGB"/>
|
||||
<color key="textColor" red="0.36470588235294116" green="0.4392156862745098" blue="0.58823529411764708" alpha="0.2993559966216216" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
</subviews>
|
||||
@@ -899,17 +815,15 @@ The only moment, the only life we have is in the NOW. What happened a few moment
|
||||
<toolbarItems/>
|
||||
<navigationItem key="navigationItem" title="Post" id="UNy-Xt-gMS">
|
||||
<barButtonItem key="leftBarButtonItem" image="backButton" id="dTy-D2-oW3">
|
||||
<color key="tintColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<color key="tintColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<connections>
|
||||
<action selector="backHandler:" destination="nzl-xt-jfq" id="5p0-sR-YpK"/>
|
||||
</connections>
|
||||
</barButtonItem>
|
||||
</navigationItem>
|
||||
<freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
|
||||
<size key="freeformSize" width="600" height="651"/>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="color" keyPath="navbarColor">
|
||||
<color key="value" red="0.96470588235294119" green="0.73725490196078436" blue="0.59607843137254901" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<color key="value" red="0.96470588235294119" green="0.73725490196078436" blue="0.59607843137254901" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
</userDefinedRuntimeAttribute>
|
||||
</userDefinedRuntimeAttributes>
|
||||
<connections>
|
||||
@@ -918,78 +832,69 @@ The only moment, the only life we have is in the NOW. What happened a few moment
|
||||
</tableViewController>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="D7E-8q-4GX" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
||||
</objects>
|
||||
<point key="canvasLocation" x="2617" y="1164.5"/>
|
||||
<point key="canvasLocation" x="2506" y="1137"/>
|
||||
</scene>
|
||||
<!--Sally Perkins-->
|
||||
<scene sceneID="Src-9g-5Bx">
|
||||
<objects>
|
||||
<tableViewController automaticallyAdjustsScrollViewInsets="NO" id="vgN-Iu-4mR" customClass="ThirdViewController" customModule="NavigationStackDemo" customModuleProvider="target" sceneMemberID="viewController">
|
||||
<tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" showsHorizontalScrollIndicator="NO" showsVerticalScrollIndicator="NO" dataMode="static" style="plain" separatorStyle="default" showsSelectionImmediatelyOnTouchBegin="NO" rowHeight="64" sectionHeaderHeight="28" sectionFooterHeight="28" id="yBE-g4-hfK">
|
||||
<rect key="frame" x="0.0" y="0.0" width="600" height="651"/>
|
||||
<tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" showsHorizontalScrollIndicator="NO" showsVerticalScrollIndicator="NO" dataMode="static" style="plain" separatorStyle="default" rowHeight="64" sectionHeaderHeight="28" sectionFooterHeight="28" id="yBE-g4-hfK">
|
||||
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<color key="separatorColor" red="0.95686274510000002" green="0.95686274510000002" blue="0.95686274510000002" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<color key="separatorColor" red="0.95686274510000002" green="0.95686274510000002" blue="0.95686274510000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<inset key="separatorInset" minX="0.0" minY="0.0" maxX="0.0" maxY="0.0"/>
|
||||
<sections>
|
||||
<tableViewSection id="Vjy-aV-G4G">
|
||||
<cells>
|
||||
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="none" indentationWidth="10" reuseIdentifier="TableViewCell" rowHeight="406" id="7nf-xU-0x6">
|
||||
<rect key="frame" x="0.0" y="0.0" width="600" height="406"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="375" height="406"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="7nf-xU-0x6" id="0rt-ai-6YF">
|
||||
<rect key="frame" x="0.0" y="0.0" width="600" height="405"/>
|
||||
<frame key="frameInset" width="375" height="405"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="BridgeImage" translatesAutoresizingMaskIntoConstraints="NO" id="Lh0-U8-KhC">
|
||||
<rect key="frame" x="0.0" y="0.0" width="600" height="405"/>
|
||||
</imageView>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="BridgeImage" translatesAutoresizingMaskIntoConstraints="NO" id="Lh0-U8-KhC"/>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="K9z-Jc-aAJ" userLabel="ContainerView">
|
||||
<rect key="frame" x="200" y="89" width="200" height="280"/>
|
||||
<subviews>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Sally Perkins" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="X6z-h6-md7">
|
||||
<rect key="frame" x="48" y="157" width="105" height="25"/>
|
||||
<fontDescription key="fontDescription" name="OpenSans" family="Open Sans" pointSize="18"/>
|
||||
<color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="5dk-W9-7jl">
|
||||
<rect key="frame" x="69" y="185" width="62" height="39"/>
|
||||
<string key="text">New York
|
||||
USA</string>
|
||||
<fontDescription key="fontDescription" name="OpenSans" family="Open Sans" pointSize="14"/>
|
||||
<color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="PinIcon" translatesAutoresizingMaskIntoConstraints="NO" id="o0h-Gi-FJ1">
|
||||
<rect key="frame" x="80" y="240" width="40" height="40"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="40" id="Oah-n1-wEc"/>
|
||||
<constraint firstAttribute="height" constant="40" id="hIV-CR-7iy"/>
|
||||
</constraints>
|
||||
</imageView>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="PersonIcon" translatesAutoresizingMaskIntoConstraints="NO" id="IFi-kj-Yy7">
|
||||
<rect key="frame" x="4" y="240" width="40" height="40"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="40" id="Ttp-co-l57"/>
|
||||
<constraint firstAttribute="width" constant="40" id="dNh-9z-CAG"/>
|
||||
</constraints>
|
||||
</imageView>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="PinIcon" translatesAutoresizingMaskIntoConstraints="NO" id="WdM-1P-ho4">
|
||||
<rect key="frame" x="156" y="240" width="40" height="40"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="40" id="DzL-z6-c3g"/>
|
||||
<constraint firstAttribute="height" constant="40" id="htE-HV-pdT"/>
|
||||
</constraints>
|
||||
</imageView>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="GirlsBig" translatesAutoresizingMaskIntoConstraints="NO" id="8Hw-xX-eKi">
|
||||
<rect key="frame" x="28" y="0.0" width="145" height="145"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="145" id="ZLs-mQ-XPB"/>
|
||||
<constraint firstAttribute="width" constant="145" id="wjY-Qi-Pke"/>
|
||||
</constraints>
|
||||
</imageView>
|
||||
</subviews>
|
||||
<color key="backgroundColor" red="0.2394116026" green="0.89475203039999995" blue="1" alpha="0.0" colorSpace="calibratedRGB"/>
|
||||
<color key="backgroundColor" red="0.2394116026" green="0.89475203039999995" blue="1" alpha="0.0" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<constraints>
|
||||
<constraint firstItem="8Hw-xX-eKi" firstAttribute="centerX" secondItem="K9z-Jc-aAJ" secondAttribute="centerX" id="5tg-CM-CFz"/>
|
||||
<constraint firstAttribute="height" constant="280" id="BcF-ro-Ooy"/>
|
||||
@@ -1019,30 +924,27 @@ USA</string>
|
||||
</tableViewCellContentView>
|
||||
</tableViewCell>
|
||||
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="none" indentationWidth="10" reuseIdentifier="TableViewCell" rowHeight="155" id="vhk-zF-mz3">
|
||||
<rect key="frame" x="0.0" y="406" width="600" height="155"/>
|
||||
<rect key="frame" x="0.0" y="406" width="375" height="155"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="vhk-zF-mz3" id="85S-wo-Fmz">
|
||||
<rect key="frame" x="0.0" y="0.0" width="600" height="154"/>
|
||||
<frame key="frameInset" width="375" height="154"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="foodIcon" translatesAutoresizingMaskIntoConstraints="NO" id="kXM-Xk-fXp">
|
||||
<rect key="frame" x="20" y="15" width="57" height="57"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="57" id="8r5-ns-RnU"/>
|
||||
<constraint firstAttribute="width" constant="57" id="bHw-uB-CSI"/>
|
||||
</constraints>
|
||||
</imageView>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="How To Meet That Special Someone" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Zii-dv-1iS">
|
||||
<rect key="frame" x="87" y="15" width="505" height="57"/>
|
||||
<fontDescription key="fontDescription" name="OpenSans" family="Open Sans" pointSize="16"/>
|
||||
<color key="textColor" red="0.36078431370000003" green="0.41176470590000003" blue="0.52156862749999999" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<color key="textColor" red="0.36078431370000003" green="0.41176470590000003" blue="0.52156862749999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" textAlignment="justified" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="HRv-6L-lsi">
|
||||
<rect key="frame" x="20" y="73" width="560" height="81"/>
|
||||
<string key="text">At about this time of year, some months after New Year’s resolutions have been made and kept, or made and neglected, one thing is undeniable: we</string>
|
||||
<fontDescription key="fontDescription" name="OpenSans-Light" family="Open Sans" pointSize="14"/>
|
||||
<color key="textColor" red="0.36078431370000003" green="0.41176470590000003" blue="0.52156862749999999" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<color key="textColor" red="0.36078431370000003" green="0.41176470590000003" blue="0.52156862749999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
</subviews>
|
||||
@@ -1061,30 +963,27 @@ USA</string>
|
||||
</tableViewCellContentView>
|
||||
</tableViewCell>
|
||||
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="none" indentationWidth="10" reuseIdentifier="TableViewCell" rowHeight="155" id="xYA-vC-VEF">
|
||||
<rect key="frame" x="0.0" y="561" width="600" height="155"/>
|
||||
<rect key="frame" x="0.0" y="561" width="375" height="155"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="xYA-vC-VEF" id="y0s-1S-2tY">
|
||||
<rect key="frame" x="0.0" y="0.0" width="600" height="154"/>
|
||||
<frame key="frameInset" width="375" height="154"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="faceIcon" translatesAutoresizingMaskIntoConstraints="NO" id="Ugo-yO-0je">
|
||||
<rect key="frame" x="20" y="15" width="57" height="57"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="57" id="ZfN-jp-UI8"/>
|
||||
<constraint firstAttribute="height" constant="57" id="xpb-oC-qBY"/>
|
||||
</constraints>
|
||||
</imageView>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="How To Excel In A Technical Job Interview" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="HOl-v5-3WH">
|
||||
<rect key="frame" x="87" y="15" width="505" height="57"/>
|
||||
<fontDescription key="fontDescription" name="OpenSans" family="Open Sans" pointSize="16"/>
|
||||
<color key="textColor" red="0.36078431370000003" green="0.41176470590000003" blue="0.52156862749999999" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<color key="textColor" red="0.36078431370000003" green="0.41176470590000003" blue="0.52156862749999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" textAlignment="justified" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="9Tc-qB-gq3">
|
||||
<rect key="frame" x="20" y="73" width="560" height="81"/>
|
||||
<string key="text">At about this time of year, some months after New Year’s resolutions have been made and kept, or made and neglected, one thing is undeniable: we</string>
|
||||
<fontDescription key="fontDescription" name="OpenSans-Light" family="Open Sans" pointSize="14"/>
|
||||
<color key="textColor" red="0.36078431370000003" green="0.41176470590000003" blue="0.52156862749999999" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<color key="textColor" red="0.36078431370000003" green="0.41176470590000003" blue="0.52156862749999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
</subviews>
|
||||
@@ -1112,7 +1011,7 @@ USA</string>
|
||||
</tableView>
|
||||
<navigationItem key="navigationItem" title="Sally Perkins" id="87M-9z-ZBY">
|
||||
<barButtonItem key="leftBarButtonItem" image="backButton" id="OAc-d7-aUh">
|
||||
<color key="tintColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<color key="tintColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<connections>
|
||||
<action selector="backHandler:" destination="vgN-Iu-4mR" id="oAG-8U-UYd"/>
|
||||
</connections>
|
||||
@@ -1120,7 +1019,7 @@ USA</string>
|
||||
</navigationItem>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="color" keyPath="navbarColor">
|
||||
<color key="value" red="0.78431372549019607" green="0.88235294117647056" blue="0.59999999999999998" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<color key="value" red="0.78431372549019607" green="0.88235294117647056" blue="0.59999999999999998" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
</userDefinedRuntimeAttribute>
|
||||
</userDefinedRuntimeAttributes>
|
||||
<connections>
|
||||
@@ -1129,7 +1028,7 @@ USA</string>
|
||||
</tableViewController>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="zWT-Hc-NvR" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
||||
</objects>
|
||||
<point key="canvasLocation" x="3284" y="1164.5"/>
|
||||
<point key="canvasLocation" x="3254" y="1137"/>
|
||||
</scene>
|
||||
</scenes>
|
||||
<resources>
|
||||
|
||||
@@ -9,8 +9,8 @@
|
||||
import UIKit
|
||||
|
||||
class FifthViewController: UITableViewController {
|
||||
|
||||
@IBAction func backHandler(sender: AnyObject) {
|
||||
navigationController?.popViewControllerAnimated(true)
|
||||
}
|
||||
|
||||
@IBAction func backHandler(_: AnyObject) {
|
||||
_ = navigationController?.popViewController(animated: true)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,43 +11,42 @@ import UIKit
|
||||
// MARK: FirstTableViewController
|
||||
|
||||
class FirstTableViewController: UITableViewController {
|
||||
|
||||
@IBOutlet var search: UISearchBar!
|
||||
|
||||
override func viewDidLoad() {
|
||||
super.viewDidLoad()
|
||||
navigationController!.interactivePopGestureRecognizer?.delegate = self
|
||||
|
||||
navigationItem.titleView = search
|
||||
}
|
||||
|
||||
override func viewWillAppear(animated: Bool) {
|
||||
super.viewWillAppear(animated)
|
||||
|
||||
if let navigationController = navigationController {
|
||||
navigationController.navigationBar.barTintColor = UIColor(red:0.4, green:0.47, blue:0.62, alpha:1)
|
||||
@IBOutlet var search: UISearchBar!
|
||||
|
||||
override func viewDidLoad() {
|
||||
super.viewDidLoad()
|
||||
navigationController!.interactivePopGestureRecognizer?.delegate = self
|
||||
|
||||
navigationItem.titleView = search
|
||||
}
|
||||
|
||||
override func viewWillAppear(_ animated: Bool) {
|
||||
super.viewWillAppear(animated)
|
||||
|
||||
if let navigationController = navigationController {
|
||||
navigationController.navigationBar.barTintColor = UIColor(red: 0.4, green: 0.47, blue: 0.62, alpha: 1)
|
||||
}
|
||||
}
|
||||
|
||||
override func tableView(_: UITableView, didSelectRowAt _: IndexPath) {
|
||||
performSegue(withIdentifier: "push", sender: nil)
|
||||
}
|
||||
}
|
||||
|
||||
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
|
||||
performSegueWithIdentifier("push", sender: nil)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// MARK: UIGestureRecognizerDelegate
|
||||
|
||||
extension FirstTableViewController: UIGestureRecognizerDelegate {
|
||||
func gestureRecognizerShouldBegin(gestureRecognizer: UIGestureRecognizer) -> Bool {
|
||||
|
||||
if navigationController?.viewControllers.count == 2 {
|
||||
return true
|
||||
func gestureRecognizerShouldBegin(_: UIGestureRecognizer) -> Bool {
|
||||
|
||||
if navigationController?.viewControllers.count == 2 {
|
||||
return true
|
||||
}
|
||||
|
||||
if let navigationController = self.navigationController as? NavigationStack {
|
||||
navigationController.showControllers()
|
||||
}
|
||||
|
||||
return false
|
||||
}
|
||||
|
||||
if let navigationController = self.navigationController as? NavigationStack {
|
||||
navigationController.showControllers()
|
||||
}
|
||||
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,24 +9,22 @@
|
||||
import UIKit
|
||||
|
||||
class SecondViewController: UITableViewController {
|
||||
|
||||
override func viewWillAppear(animated: Bool) {
|
||||
super.viewWillAppear(animated)
|
||||
|
||||
|
||||
override func viewWillAppear(_ animated: Bool) {
|
||||
super.viewWillAppear(animated)
|
||||
|
||||
// if let navigationController = navigationController {
|
||||
//// navigationController.navigationBar.barTintColor = UIColor(red:0.61, green:0.86, blue:0.87, alpha:1)
|
||||
//// tableView.contentOffset = CGPoint(x: 0, y: -44)
|
||||
//// navigationController.navigationBar.translucent = true
|
||||
//// navigationController.navigationBar.barTintColor = UIColor(red:0.61, green:0.86, blue:0.87, alpha:1)
|
||||
//// tableView.contentOffset = CGPoint(x: 0, y: -44)
|
||||
//// navigationController.navigationBar.translucent = true
|
||||
// }
|
||||
}
|
||||
}
|
||||
|
||||
@IBAction func backHandler(_: AnyObject) {
|
||||
_ = navigationController?.popViewController(animated: true)
|
||||
}
|
||||
|
||||
@IBAction func backHandler(sender: AnyObject) {
|
||||
navigationController?.popViewControllerAnimated(true)
|
||||
}
|
||||
|
||||
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
|
||||
performSegueWithIdentifier("push", sender: nil)
|
||||
}
|
||||
|
||||
override func tableView(_: UITableView, didSelectRowAt _: IndexPath) {
|
||||
performSegue(withIdentifier: "push", sender: nil)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,20 +9,18 @@
|
||||
import UIKit
|
||||
|
||||
class ThirdViewController: UITableViewController {
|
||||
|
||||
@IBInspectable var navbarColor: UIColor = .blackColor()
|
||||
|
||||
override func viewWillAppear(animated: Bool) {
|
||||
super.viewWillAppear(animated)
|
||||
|
||||
}
|
||||
|
||||
@IBAction func backHandler(sender: AnyObject) {
|
||||
navigationController?.popViewControllerAnimated(true)
|
||||
}
|
||||
|
||||
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
|
||||
performSegueWithIdentifier("push", sender: nil)
|
||||
}
|
||||
|
||||
|
||||
@IBInspectable var navbarColor: UIColor = .black
|
||||
|
||||
override func viewWillAppear(_ animated: Bool) {
|
||||
super.viewWillAppear(animated)
|
||||
}
|
||||
|
||||
@IBAction func backHandler(_: AnyObject) {
|
||||
_ = navigationController?.popViewController(animated: true)
|
||||
}
|
||||
|
||||
override func tableView(_: UITableView, didSelectRowAt _: IndexPath) {
|
||||
performSegue(withIdentifier: "push", sender: nil)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,36 +0,0 @@
|
||||
//
|
||||
// NavigationStackDemoTests.swift
|
||||
// NavigationStackDemoTests
|
||||
//
|
||||
// Created by Alex K. on 26/02/16.
|
||||
// Copyright © 2016 Alex K. All rights reserved.
|
||||
//
|
||||
|
||||
import XCTest
|
||||
@testable import NavigationStackDemo
|
||||
|
||||
class NavigationStackDemoTests: XCTestCase {
|
||||
|
||||
override func setUp() {
|
||||
super.setUp()
|
||||
// Put setup code here. This method is called before the invocation of each test method in the class.
|
||||
}
|
||||
|
||||
override func tearDown() {
|
||||
// Put teardown code here. This method is called after the invocation of each test method in the class.
|
||||
super.tearDown()
|
||||
}
|
||||
|
||||
func testExample() {
|
||||
// This is an example of a functional test case.
|
||||
// Use XCTAssert and related functions to verify your tests produce the correct results.
|
||||
}
|
||||
|
||||
func testPerformanceExample() {
|
||||
// This is an example of a performance test case.
|
||||
self.measureBlock {
|
||||
// Put the code you want to measure the time of here.
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
// swift-tools-version:5.1
|
||||
//
|
||||
// Package.swift
|
||||
//
|
||||
// Copyright (c) Ramotion (https://www.ramotion.com/)
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
// of this software and associated documentation files (the "Software"), to deal
|
||||
// in the Software without restriction, including without limitation the rights
|
||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
// copies of the Software, and to permit persons to whom the Software is
|
||||
// furnished to do so, subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be included in
|
||||
// all copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
// THE SOFTWARE.
|
||||
//
|
||||
|
||||
import PackageDescription
|
||||
|
||||
|
||||
let package = Package(
|
||||
name: "NavigationStack",
|
||||
platforms: [
|
||||
.iOS(.v8)
|
||||
],
|
||||
products: [
|
||||
.library(name: "NavigationStack",
|
||||
targets: ["NavigationStack"]),
|
||||
],
|
||||
targets: [
|
||||
.target(name: "NavigationStack",
|
||||
path: "Source")
|
||||
],
|
||||
swiftLanguageVersions: [.v5]
|
||||
)
|
||||
@@ -1,21 +1,40 @@
|
||||

|
||||
<a href="https://www.ramotion.com/agency/app-development/?utm_source=gthb&utm_medium=repo&utm_campaign=navigation-stack"><img src="https://github.com/Ramotion/folding-cell/blob/master/header.png"></a>
|
||||
|
||||
<a href="https://github.com/Ramotion/navigation-stack">
|
||||
<img align="left" src="https://github.com/Ramotion/navigation-stack/blob/master/navigation-stack.gif" width="480" height="360" /></a>
|
||||
|
||||
<p><h1 align="left">NAVIGATION STACK</h1></p>
|
||||
|
||||
<h4>Navigation Stack is a library with stack-modeled UI navigation controller.</h4>
|
||||
|
||||
|
||||
___
|
||||
|
||||
|
||||
|
||||
<p><h6>We specialize in the designing and coding of custom UI for Mobile Apps and Websites.</h6>
|
||||
<a href="https://www.ramotion.com/agency/app-development/?utm_source=gthb&utm_medium=repo&utm_campaign=navigation-stack">
|
||||
<img src="https://github.com/ramotion/gliding-collection/raw/master/contact_our_team@2x.png" width="187" height="34"></a>
|
||||
</p>
|
||||
<p><h6>Stay tuned for the latest updates:</h6>
|
||||
<a href="https://goo.gl/rPFpid" >
|
||||
<img src="https://i.imgur.com/ziSqeSo.png/" width="156" height="28"></a></p>
|
||||
|
||||
</br>
|
||||
|
||||
# navigation-stack
|
||||
[](http://twitter.com/Ramotion)
|
||||
[](https://cocoapods.org/pods/Navigation-stack)
|
||||
[](http://cocoapods.org/pods/Navigation-stack)
|
||||
[](https://cdn.rawgit.com/Ramotion/navigation-stack/master/docs/index.html)
|
||||
[](https://travis-ci.org/Ramotion/navigation-stack)
|
||||
[](https://codebeat.co/projects/github-com-ramotion-navigation-stack)
|
||||
|
||||
[shot on dribbble](https://dribbble.com/shots/2583175-Navigation-Stack-Swift-Open-Source):
|
||||

|
||||
|
||||
The [iPhone mockup](https://store.ramotion.com/product/iphone-6-mockups?utm_source=gthb&utm_medium=special&utm_campaign=navigation-stack) available [here](https://store.ramotion.com/product/iphone-6-mockups?utm_source=gthb&utm_medium=special&utm_campaign=navigation-stack).
|
||||
[](https://github.com/Ramotion/navigation-stack)
|
||||
[](https://paypal.me/Ramotion)
|
||||
|
||||
## Requirements
|
||||
|
||||
- iOS 9.0+
|
||||
- Xcode 7.2
|
||||
- Xcode 9
|
||||
|
||||
## Installation
|
||||
|
||||
@@ -23,7 +42,12 @@ Just add the Source folder to your project.
|
||||
|
||||
or use [CocoaPods](https://cocoapods.org) with Podfile:
|
||||
``` ruby
|
||||
pod 'Navigation-stack', '~> 0.0.2'
|
||||
pod 'Navigation-stack'
|
||||
```
|
||||
|
||||
or [Carthage](https://github.com/Carthage/Carthage) users can simply add to their `Cartfile`:
|
||||
```
|
||||
github "Ramotion/navigation-stack"
|
||||
```
|
||||
|
||||
## Usage
|
||||
@@ -42,29 +66,36 @@ override func viewDidLoad() {
|
||||
``` swift
|
||||
extension YourViewController: UIGestureRecognizerDelegate {
|
||||
func gestureRecognizerShouldBegin(gestureRecognizer: UIGestureRecognizer) -> Bool {
|
||||
|
||||
|
||||
if navigationController?.viewControllers.count == 2 {
|
||||
return true
|
||||
}
|
||||
|
||||
|
||||
if let navigationController = self.navigationController as? NavigationStack {
|
||||
navigationController.showControllers()
|
||||
}
|
||||
|
||||
|
||||
return false
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Licence
|
||||
## 📄 License
|
||||
|
||||
Navigation-stack is released under the MIT license.
|
||||
Navigation Stack is released under the MIT license.
|
||||
See [LICENSE](./LICENSE) for details.
|
||||
|
||||
This library is a part of a <a href="https://github.com/Ramotion/swift-ui-animation-components-and-libraries"><b>selection of our best UI open-source projects.</b></a>
|
||||
|
||||
## About
|
||||
The project maintained by [app development agency](https://ramotion.com?utm_source=gthb&utm_medium=special&utm_campaign=navigation-stack) [Ramotion Inc.](https://ramotion.com?utm_source=gthb&utm_medium=special&utm_campaign=navigation-stack)
|
||||
See our other [open-source projects](https://github.com/ramotion) or [hire](https://ramotion.com?utm_source=gthb&utm_medium=special&utm_campaign=navigation-stack) us to design, develop, and grow your product.
|
||||
If you use the open-source library in your project, please make sure to credit and backlink to www.ramotion.com
|
||||
|
||||
[](https://twitter.com/intent/tweet?text=https://github.com/ramotion/navigation-stack)
|
||||
[](https://twitter.com/ramotion)
|
||||
## 📱 Get the Showroom App for iOS to give it a try
|
||||
Try this UI component and more like this in our iOS app. Contact us if interested.
|
||||
|
||||
<a href="https://itunes.apple.com/app/apple-store/id1182360240?pt=550053&ct=navigation-stack&mt=8" >
|
||||
<img src="https://github.com/ramotion/gliding-collection/raw/master/app_store@2x.png" width="117" height="34"></a>
|
||||
|
||||
<a href="https://www.ramotion.com/agency/app-development/?utm_source=gthb&utm_medium=repo&utm_campaign=navigation-stack">
|
||||
<img src="https://github.com/ramotion/gliding-collection/raw/master/contact_our_team@2x.png" width="187" height="34"></a>
|
||||
<br>
|
||||
<br>
|
||||
|
||||
|
After Width: | Height: | Size: 20 KiB |
@@ -22,83 +22,80 @@
|
||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
// THE SOFTWARE.
|
||||
|
||||
|
||||
import UIKit
|
||||
|
||||
// MARK: CollectionViewStackCell
|
||||
|
||||
class CollectionViewStackCell: UICollectionViewCell {
|
||||
|
||||
internal var imageView: UIImageView?
|
||||
|
||||
override init(frame: CGRect) {
|
||||
super.init(frame: frame)
|
||||
imageView = createImageView()
|
||||
createShadow()
|
||||
}
|
||||
|
||||
required init?(coder aDecoder: NSCoder) {
|
||||
fatalError("init(coder:) has not been implemented")
|
||||
}
|
||||
|
||||
internal override func prepareForReuse() {
|
||||
imageView?.image = nil
|
||||
}
|
||||
internal var imageView: UIImageView?
|
||||
|
||||
override init(frame: CGRect) {
|
||||
super.init(frame: frame)
|
||||
imageView = createImageView()
|
||||
createShadow()
|
||||
}
|
||||
|
||||
required init?(coder _: NSCoder) {
|
||||
fatalError("init(coder:) has not been implemented")
|
||||
}
|
||||
|
||||
internal override func prepareForReuse() {
|
||||
imageView?.image = nil
|
||||
}
|
||||
}
|
||||
|
||||
// MARK: configure
|
||||
|
||||
extension CollectionViewStackCell {
|
||||
|
||||
private func createImageView() -> UIImageView {
|
||||
fileprivate func createImageView() -> UIImageView {
|
||||
|
||||
let imageView = UIImageView(frame: CGRect.zero)
|
||||
imageView.translatesAutoresizingMaskIntoConstraints = false
|
||||
imageView.layer.shouldRasterize = true
|
||||
contentView.addSubview(imageView)
|
||||
|
||||
contentView.addConstraints([
|
||||
createConstraint(imageView, toItem: contentView, attribute: .Top),
|
||||
createConstraint(imageView, toItem: contentView, attribute: .Bottom),
|
||||
createConstraint(imageView, toItem: contentView, attribute: .Left),
|
||||
createConstraint(imageView, toItem: contentView, attribute: .Right),
|
||||
])
|
||||
|
||||
return imageView
|
||||
}
|
||||
|
||||
private func createConstraint(item: UIImageView, toItem: UIView, attribute: NSLayoutAttribute) -> NSLayoutConstraint {
|
||||
return NSLayoutConstraint(item: item,
|
||||
attribute: attribute,
|
||||
relatedBy: .Equal,
|
||||
toItem: toItem,
|
||||
attribute: attribute,
|
||||
multiplier: 1,
|
||||
constant: 0)
|
||||
}
|
||||
|
||||
private func createShadow() {
|
||||
layer.masksToBounds = false;
|
||||
layer.shadowOpacity = 0.30;
|
||||
layer.shadowRadius = 10.0;
|
||||
layer.shadowOffset = CGSize.zero;
|
||||
layer.shadowPath = UIBezierPath(rect: bounds).CGPath
|
||||
layer.shouldRasterize = true;
|
||||
}
|
||||
|
||||
private func addBlurOnImage(image: UIImageView) {
|
||||
// create effect
|
||||
// UIBlurEffect *blur = [UIBlurEffect effectWithStyle:UIBlurEffectStyleLight];
|
||||
//
|
||||
// // add effect to an effect view
|
||||
// UIVisualEffectView *effectView = [[UIVisualEffectView alloc]initWithEffect:blur];
|
||||
// effectView.frame = self.view.frame;
|
||||
//
|
||||
// // add the effect view to the image view
|
||||
// [self.imageView addSubview:effectView];
|
||||
|
||||
|
||||
}
|
||||
let imageView = UIImageView(frame: CGRect.zero)
|
||||
imageView.translatesAutoresizingMaskIntoConstraints = false
|
||||
imageView.layer.shouldRasterize = true
|
||||
contentView.addSubview(imageView)
|
||||
|
||||
contentView.addConstraints([
|
||||
createConstraint(imageView, toItem: contentView, attribute: .top),
|
||||
createConstraint(imageView, toItem: contentView, attribute: .bottom),
|
||||
createConstraint(imageView, toItem: contentView, attribute: .left),
|
||||
createConstraint(imageView, toItem: contentView, attribute: .right),
|
||||
])
|
||||
|
||||
return imageView
|
||||
}
|
||||
|
||||
fileprivate func createConstraint(_ item: UIImageView, toItem: UIView, attribute: NSLayoutConstraint.Attribute) -> NSLayoutConstraint {
|
||||
return NSLayoutConstraint(item: item,
|
||||
attribute: attribute,
|
||||
relatedBy: .equal,
|
||||
toItem: toItem,
|
||||
attribute: attribute,
|
||||
multiplier: 1,
|
||||
constant: 0)
|
||||
}
|
||||
|
||||
fileprivate func createShadow() {
|
||||
layer.masksToBounds = false
|
||||
layer.shadowOpacity = 0.30
|
||||
layer.shadowRadius = 10.0
|
||||
layer.shadowOffset = CGSize.zero
|
||||
layer.shadowPath = UIBezierPath(rect: bounds).cgPath
|
||||
layer.shouldRasterize = true
|
||||
layer.rasterizationScale = max(UIScreen.main.scale, 2.0)
|
||||
}
|
||||
|
||||
fileprivate func addBlurOnImage(_: UIImageView) {
|
||||
|
||||
let blurEffect = UIBlurEffect(style: .dark)
|
||||
let blurView = UIVisualEffectView(effect: blurEffect)
|
||||
blurView.translatesAutoresizingMaskIntoConstraints = false
|
||||
imageView!.insertSubview(blurView, at: 3)
|
||||
|
||||
let vibrancyEffect = UIVibrancyEffect(blurEffect: blurEffect)
|
||||
let vibrancyView = UIVisualEffectView(effect: vibrancyEffect)
|
||||
vibrancyView.translatesAutoresizingMaskIntoConstraints = false
|
||||
blurView.contentView.addSubview(vibrancyView)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,163 +22,169 @@
|
||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
// THE SOFTWARE.
|
||||
|
||||
|
||||
import UIKit
|
||||
fileprivate func < <T: Comparable>(lhs: T?, rhs: T?) -> Bool {
|
||||
switch (lhs, rhs) {
|
||||
case let (l?, r?):
|
||||
return l < r
|
||||
case (nil, _?):
|
||||
return true
|
||||
default:
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
// MARK: CollectionStackViewController
|
||||
|
||||
protocol CollectionStackViewControllerDelegate: class {
|
||||
func controllerDidSelected(index index: Int)
|
||||
func controllerDidSelected(index: Int)
|
||||
}
|
||||
|
||||
|
||||
class CollectionStackViewController: UICollectionViewController {
|
||||
private var screens: [UIImage]
|
||||
private let overlay: Float
|
||||
|
||||
weak var delegate: CollectionStackViewControllerDelegate?
|
||||
|
||||
init(images: [UIImage],
|
||||
delegate: CollectionStackViewControllerDelegate?,
|
||||
overlay: Float,
|
||||
scaleRatio: Float,
|
||||
scaleValue: Float,
|
||||
bgColor: UIColor = UIColor.clearColor(),
|
||||
bgView: UIView? = nil,
|
||||
decelerationRate:CGFloat) {
|
||||
|
||||
self.screens = images
|
||||
self.delegate = delegate
|
||||
self.overlay = overlay
|
||||
|
||||
let layout = CollectionViewStackFlowLayout(itemsCount: images.count, overlay: overlay, scaleRatio: scaleRatio, scale:scaleValue)
|
||||
super.init(collectionViewLayout: layout)
|
||||
|
||||
if let collectionView = self.collectionView {
|
||||
collectionView.backgroundColor = bgColor
|
||||
collectionView.backgroundView = bgView
|
||||
collectionView.decelerationRate = decelerationRate
|
||||
}
|
||||
}
|
||||
fileprivate var screens: [UIImage]
|
||||
fileprivate let overlay: Float
|
||||
|
||||
required init?(coder aDecoder: NSCoder) {
|
||||
fatalError("init(coder:) has not been implemented")
|
||||
}
|
||||
|
||||
override func viewDidLoad() {
|
||||
configureCollectionView()
|
||||
scrolltoIndex(screens.count - 1, animated: false, position: .Left) // move to end
|
||||
}
|
||||
|
||||
override func viewDidAppear(animated: Bool) {
|
||||
|
||||
guard let collectionViewLayout = self.collectionViewLayout as? CollectionViewStackFlowLayout else {
|
||||
fatalError("wrong collection layout")
|
||||
weak var delegate: CollectionStackViewControllerDelegate?
|
||||
|
||||
init(images: [UIImage],
|
||||
delegate: CollectionStackViewControllerDelegate?,
|
||||
overlay: Float,
|
||||
scaleRatio: Float,
|
||||
scaleValue: Float,
|
||||
bgColor: UIColor = UIColor.clear,
|
||||
bgView: UIView? = nil,
|
||||
decelerationRate: CGFloat) {
|
||||
|
||||
screens = images
|
||||
self.delegate = delegate
|
||||
self.overlay = overlay
|
||||
|
||||
let layout = CollectionViewStackFlowLayout(itemsCount: images.count, overlay: overlay, scaleRatio: scaleRatio, scale: scaleValue)
|
||||
super.init(collectionViewLayout: layout)
|
||||
|
||||
if let collectionView = self.collectionView {
|
||||
collectionView.backgroundColor = bgColor
|
||||
collectionView.backgroundView = bgView
|
||||
collectionView.decelerationRate = UIScrollView.DecelerationRate(rawValue: decelerationRate)
|
||||
}
|
||||
}
|
||||
|
||||
required init?(coder _: NSCoder) {
|
||||
fatalError("init(coder:) has not been implemented")
|
||||
}
|
||||
|
||||
override func viewDidLoad() {
|
||||
configureCollectionView()
|
||||
scrolltoIndex(screens.count - 1, animated: false, position: .left) // move to end
|
||||
}
|
||||
|
||||
override func viewDidAppear(_: Bool) {
|
||||
|
||||
guard let collectionViewLayout = self.collectionViewLayout as? CollectionViewStackFlowLayout else {
|
||||
fatalError("wrong collection layout")
|
||||
}
|
||||
|
||||
collectionViewLayout.openAnimating = true
|
||||
scrolltoIndex(0, animated: true, position: .left) // open animation
|
||||
}
|
||||
|
||||
collectionViewLayout.openAnimating = true
|
||||
scrolltoIndex(0, animated: true, position: .Left) // open animation
|
||||
}
|
||||
}
|
||||
|
||||
// MARK: configure
|
||||
|
||||
extension CollectionStackViewController {
|
||||
|
||||
private func configureCollectionView() {
|
||||
guard let collectionViewLayout = self.collectionViewLayout as? UICollectionViewFlowLayout else {
|
||||
fatalError("wrong collection layout")
|
||||
}
|
||||
|
||||
collectionViewLayout.scrollDirection = .Horizontal
|
||||
collectionView?.showsHorizontalScrollIndicator = false
|
||||
collectionView?.registerClass(CollectionViewStackCell.self, forCellWithReuseIdentifier: String(CollectionViewStackCell))
|
||||
}
|
||||
|
||||
fileprivate func configureCollectionView() {
|
||||
guard let collectionViewLayout = self.collectionViewLayout as? UICollectionViewFlowLayout else {
|
||||
fatalError("wrong collection layout")
|
||||
}
|
||||
|
||||
collectionViewLayout.scrollDirection = .horizontal
|
||||
collectionView?.showsHorizontalScrollIndicator = false
|
||||
collectionView?.register(CollectionViewStackCell.self, forCellWithReuseIdentifier: String(describing: CollectionViewStackCell.self))
|
||||
}
|
||||
}
|
||||
|
||||
// MARK: CollectionViewDataSource
|
||||
|
||||
extension CollectionStackViewController {
|
||||
|
||||
override func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
|
||||
return screens.count
|
||||
}
|
||||
|
||||
override func collectionView(collectionView: UICollectionView,
|
||||
willDisplayCell cell: UICollectionViewCell,
|
||||
forItemAtIndexPath indexPath: NSIndexPath) {
|
||||
|
||||
if let cell = cell as? CollectionViewStackCell {
|
||||
cell.imageView?.image = screens[indexPath.row]
|
||||
}
|
||||
}
|
||||
|
||||
override func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
|
||||
let cell = collectionView.dequeueReusableCellWithReuseIdentifier(String(CollectionViewStackCell),
|
||||
forIndexPath: indexPath)
|
||||
return cell
|
||||
}
|
||||
|
||||
override func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) {
|
||||
guard let currentCell = collectionView.cellForItemAtIndexPath(indexPath) else {
|
||||
return
|
||||
|
||||
override func collectionView(_: UICollectionView, numberOfItemsInSection _: Int) -> Int {
|
||||
return screens.count
|
||||
}
|
||||
|
||||
// move cells
|
||||
UIView.animateWithDuration(0.3, delay: 0, options:.CurveEaseIn,
|
||||
animations: { () -> Void in
|
||||
for cell in self.collectionView!.visibleCells() where cell != currentCell {
|
||||
let row = self.collectionView?.indexPathForCell(cell)?.row
|
||||
let xPosition = row < indexPath.row ? cell.center.x - self.view.bounds.size.width * 2
|
||||
: cell.center.x + self.view.bounds.size.width * 2
|
||||
|
||||
cell.center = CGPoint(x: xPosition, y: cell.center.y)
|
||||
}
|
||||
}, completion: nil)
|
||||
|
||||
// move to center current cell
|
||||
UIView.animateWithDuration(0.2, delay: 0.2, options:.CurveEaseOut,
|
||||
animations: { () -> Void in
|
||||
let offset = collectionView.contentOffset.x - (self.view.bounds.size.width - collectionView.bounds.size.width * CGFloat(self.overlay)) * CGFloat(indexPath.row)
|
||||
currentCell.center = CGPoint(x: (currentCell.center.x + offset), y: currentCell.center.y)
|
||||
}, completion: nil)
|
||||
|
||||
// scale current cell
|
||||
UIView.animateWithDuration(0.2, delay: 0.6, options:.CurveEaseOut, animations: { () -> Void in
|
||||
let scale = CGAffineTransformMakeScale(1, 1)
|
||||
currentCell.transform = scale
|
||||
currentCell.alpha = 1
|
||||
|
||||
}) { (success) -> Void in
|
||||
dispatch_async(dispatch_get_main_queue(), { () -> Void in
|
||||
self.delegate?.controllerDidSelected(index: indexPath.row)
|
||||
self.dismissViewControllerAnimated(false, completion: nil)
|
||||
})
|
||||
override func collectionView(_: UICollectionView,
|
||||
willDisplay cell: UICollectionViewCell,
|
||||
forItemAt indexPath: IndexPath) {
|
||||
|
||||
if let cell = cell as? CollectionViewStackCell {
|
||||
cell.imageView?.image = screens[(indexPath as NSIndexPath).row]
|
||||
}
|
||||
}
|
||||
|
||||
override func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
|
||||
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: String(describing: CollectionViewStackCell.self),
|
||||
for: indexPath)
|
||||
return cell
|
||||
}
|
||||
|
||||
override func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
|
||||
guard let currentCell = collectionView.cellForItem(at: indexPath) else {
|
||||
return
|
||||
}
|
||||
|
||||
// move cells
|
||||
UIView.animate(withDuration: 0.3, delay: 0, options: .curveEaseIn,
|
||||
animations: { () -> Void in
|
||||
for cell in self.collectionView!.visibleCells where cell != currentCell {
|
||||
let row = (self.collectionView?.indexPath(for: cell) as NSIndexPath?)?.row
|
||||
let xPosition = row < (indexPath as NSIndexPath).row ? cell.center.x - self.view.bounds.size.width * 2
|
||||
: cell.center.x + self.view.bounds.size.width * 2
|
||||
|
||||
cell.center = CGPoint(x: xPosition, y: cell.center.y)
|
||||
}
|
||||
}, completion: nil)
|
||||
|
||||
// move to center current cell
|
||||
UIView.animate(withDuration: 0.2, delay: 0.2, options: .curveEaseOut,
|
||||
animations: { () -> Void in
|
||||
let offset = collectionView.contentOffset.x - (self.view.bounds.size.width - collectionView.bounds.size.width * CGFloat(self.overlay)) * CGFloat((indexPath as NSIndexPath).row)
|
||||
currentCell.center = CGPoint(x: (currentCell.center.x + offset), y: currentCell.center.y)
|
||||
}, completion: nil)
|
||||
|
||||
// scale current cell
|
||||
UIView.animate(withDuration: 0.2, delay: 0.6, options: .curveEaseOut, animations: { () -> Void in
|
||||
let scale = CGAffineTransform(scaleX: 1, y: 1)
|
||||
currentCell.transform = scale
|
||||
currentCell.alpha = 1
|
||||
|
||||
}) { (_) -> Void in
|
||||
DispatchQueue.main.async(execute: { () -> Void in
|
||||
self.delegate?.controllerDidSelected(index: (indexPath as NSIndexPath).row)
|
||||
self.dismiss(animated: false, completion: nil)
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// MARK: UICollectionViewDelegateFlowLayout
|
||||
|
||||
extension CollectionStackViewController: UICollectionViewDelegateFlowLayout {
|
||||
|
||||
func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize {
|
||||
return view.bounds.size
|
||||
}
|
||||
|
||||
func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAtIndex section: NSInteger) -> CGFloat {
|
||||
return -collectionView.bounds.size.width * CGFloat(overlay)
|
||||
}
|
||||
}
|
||||
|
||||
func collectionView(_: UICollectionView, layout _: UICollectionViewLayout, sizeForItemAt _: IndexPath) -> CGSize {
|
||||
return view.bounds.size
|
||||
}
|
||||
|
||||
func collectionView(_ collectionView: UICollectionView, layout _: UICollectionViewLayout, minimumLineSpacingForSectionAt _: NSInteger) -> CGFloat {
|
||||
return -collectionView.bounds.size.width * CGFloat(overlay)
|
||||
}
|
||||
}
|
||||
|
||||
// MARK: Additional helpers
|
||||
|
||||
extension CollectionStackViewController {
|
||||
|
||||
private func scrolltoIndex(index: Int, animated: Bool , position: UICollectionViewScrollPosition) {
|
||||
let indexPath = NSIndexPath(forItem: index, inSection: 0)
|
||||
collectionView?.scrollToItemAtIndexPath(indexPath, atScrollPosition: position, animated: animated)
|
||||
}
|
||||
|
||||
fileprivate func scrolltoIndex(_ index: Int, animated: Bool, position: UICollectionView.ScrollPosition) {
|
||||
let indexPath = IndexPath(item: index, section: 0)
|
||||
collectionView?.scrollToItem(at: indexPath, at: position, animated: animated)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,125 +22,121 @@
|
||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
// THE SOFTWARE.
|
||||
|
||||
|
||||
import UIKit
|
||||
|
||||
// MARK: CollectionViewStackFlowLayout
|
||||
|
||||
class CollectionViewStackFlowLayout: UICollectionViewFlowLayout {
|
||||
|
||||
let itemsCount: Int
|
||||
let overlay: Float // from 0 to 1
|
||||
|
||||
let maxScale: Float
|
||||
let scaleRatio: Float
|
||||
|
||||
var additionScale = 1.0
|
||||
var openAnimating = false
|
||||
|
||||
var dxOffset: Float = 0
|
||||
|
||||
init(itemsCount: Int, overlay: Float, scaleRatio: Float, scale: Float) {
|
||||
self.itemsCount = itemsCount
|
||||
self.overlay = overlay
|
||||
self.scaleRatio = scaleRatio
|
||||
self.maxScale = scale
|
||||
super.init()
|
||||
}
|
||||
|
||||
required init?(coder aDecoder: NSCoder) {
|
||||
fatalError("init(coder:) has not been implemented")
|
||||
}
|
||||
let itemsCount: Int
|
||||
let overlay: Float // from 0 to 1
|
||||
|
||||
let maxScale: Float
|
||||
let scaleRatio: Float
|
||||
|
||||
var additionScale = 1.0
|
||||
var openAnimating = false
|
||||
|
||||
var dxOffset: Float = 0
|
||||
|
||||
init(itemsCount: Int, overlay: Float, scaleRatio: Float, scale: Float) {
|
||||
self.itemsCount = itemsCount
|
||||
self.overlay = overlay
|
||||
self.scaleRatio = scaleRatio
|
||||
maxScale = scale
|
||||
super.init()
|
||||
}
|
||||
|
||||
required init?(coder _: NSCoder) {
|
||||
fatalError("init(coder:) has not been implemented")
|
||||
}
|
||||
}
|
||||
|
||||
extension CollectionViewStackFlowLayout {
|
||||
|
||||
override func layoutAttributesForElementsInRect(rect: CGRect) -> [UICollectionViewLayoutAttributes]? {
|
||||
let items = NSArray (array: super.layoutAttributesForElementsInRect(rect)!, copyItems: true)
|
||||
var headerAttributes: UICollectionViewLayoutAttributes?
|
||||
|
||||
items.enumerateObjectsUsingBlock { (object, idex, stop) -> Void in
|
||||
let attributes = object as! UICollectionViewLayoutAttributes
|
||||
|
||||
if attributes.representedElementKind == UICollectionElementKindSectionHeader {
|
||||
headerAttributes = attributes
|
||||
}
|
||||
else {
|
||||
self.updateCellAttributes(attributes, headerAttributes: headerAttributes)
|
||||
}
|
||||
}
|
||||
return items as? [UICollectionViewLayoutAttributes]
|
||||
}
|
||||
|
||||
func updateCellAttributes(attributes: UICollectionViewLayoutAttributes, headerAttributes: UICollectionViewLayoutAttributes?) {
|
||||
|
||||
guard let collectionView = self.collectionView else {
|
||||
return;
|
||||
}
|
||||
let itemWidth = collectionView.bounds.size.width - collectionView.bounds.size.width * CGFloat(overlay)
|
||||
let allWidth = itemWidth * CGFloat(itemsCount - 1)
|
||||
|
||||
// set contentOffset range
|
||||
let contentOffsetX = min(max(0, collectionView.contentOffset.x), allWidth)
|
||||
|
||||
let scale = transformScale(attributes, allWidth: allWidth, offset: contentOffsetX)
|
||||
let move = transformMove(attributes, itemWidth: itemWidth, offset: contentOffsetX)
|
||||
attributes.transform = CGAffineTransformConcat(scale, move)
|
||||
attributes.alpha = calculateAlpha(attributes, itemWidth: itemWidth, offset: contentOffsetX)
|
||||
|
||||
if additionScale > 0 && openAnimating {
|
||||
additionScale -= 0.02
|
||||
additionScale = additionScale < 0 ? 0 : additionScale
|
||||
override func layoutAttributesForElements(in rect: CGRect) -> [UICollectionViewLayoutAttributes]? {
|
||||
let items = NSArray(array: super.layoutAttributesForElements(in: rect)!, copyItems: true)
|
||||
var headerAttributes: UICollectionViewLayoutAttributes?
|
||||
|
||||
items.enumerateObjects({ (object, _, _) -> Void in
|
||||
let attributes = object as! UICollectionViewLayoutAttributes
|
||||
|
||||
if attributes.representedElementKind == UICollectionView.elementKindSectionHeader {
|
||||
headerAttributes = attributes
|
||||
} else {
|
||||
self.updateCellAttributes(attributes, headerAttributes: headerAttributes)
|
||||
}
|
||||
})
|
||||
return items as? [UICollectionViewLayoutAttributes]
|
||||
}
|
||||
|
||||
func updateCellAttributes(_ attributes: UICollectionViewLayoutAttributes, headerAttributes _: UICollectionViewLayoutAttributes?) {
|
||||
|
||||
guard let collectionView = self.collectionView else {
|
||||
return
|
||||
}
|
||||
let itemWidth = collectionView.bounds.size.width - collectionView.bounds.size.width * CGFloat(overlay)
|
||||
let allWidth = itemWidth * CGFloat(itemsCount - 1)
|
||||
|
||||
// set contentOffset range
|
||||
let contentOffsetX = min(max(0, collectionView.contentOffset.x), allWidth)
|
||||
|
||||
let scale = transformScale(attributes, allWidth: allWidth, offset: contentOffsetX)
|
||||
let move = transformMove(attributes, itemWidth: itemWidth, offset: contentOffsetX)
|
||||
attributes.transform = scale.concatenating(move)
|
||||
attributes.alpha = calculateAlpha(attributes, itemWidth: itemWidth, offset: contentOffsetX)
|
||||
|
||||
if additionScale > 0 && openAnimating {
|
||||
additionScale -= 0.02
|
||||
additionScale = additionScale < 0 ? 0 : additionScale
|
||||
}
|
||||
attributes.zIndex = (attributes.indexPath as NSIndexPath).row
|
||||
}
|
||||
|
||||
override func shouldInvalidateLayout(forBoundsChange _: CGRect) -> Bool {
|
||||
return true
|
||||
}
|
||||
attributes.zIndex = attributes.indexPath.row
|
||||
}
|
||||
|
||||
override func shouldInvalidateLayoutForBoundsChange(newBounds: CGRect) -> Bool {
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
||||
// MARK: helpers
|
||||
|
||||
extension CollectionViewStackFlowLayout {
|
||||
|
||||
private func transformScale(attributes: UICollectionViewLayoutAttributes,
|
||||
allWidth: CGFloat,
|
||||
offset: CGFloat) -> CGAffineTransform {
|
||||
var maximum = CGFloat(maxScale) - CGFloat(itemsCount - attributes.indexPath.row) / CGFloat(scaleRatio)
|
||||
maximum += CGFloat(1.0 - maximum) * CGFloat(additionScale)
|
||||
|
||||
var minimum = CGFloat(maxScale - 0.1) - CGFloat(itemsCount - attributes.indexPath.row) / CGFloat(scaleRatio)
|
||||
minimum += CGFloat(1.0 - minimum) * CGFloat(additionScale)
|
||||
|
||||
var currentScale = (maximum + minimum) - (minimum + offset / (allWidth / (maximum - minimum)))
|
||||
currentScale = max(min(maximum, currentScale), minimum)
|
||||
return CGAffineTransformMakeScale(currentScale, currentScale)
|
||||
}
|
||||
|
||||
private func transformMove(attributes: UICollectionViewLayoutAttributes,
|
||||
itemWidth: CGFloat,
|
||||
offset: CGFloat) -> CGAffineTransform {
|
||||
var currentContentOffsetX = offset - itemWidth * CGFloat(attributes.indexPath.row)
|
||||
currentContentOffsetX = min(max(currentContentOffsetX, 0),itemWidth)
|
||||
|
||||
var dx = (currentContentOffsetX / itemWidth)
|
||||
if let collectionView = self.collectionView {
|
||||
dx *= collectionView.bounds.size.width / 8.0
|
||||
}
|
||||
dx = currentContentOffsetX - dx
|
||||
fileprivate func transformScale(_ attributes: UICollectionViewLayoutAttributes,
|
||||
allWidth: CGFloat,
|
||||
offset: CGFloat) -> CGAffineTransform {
|
||||
var maximum = CGFloat(maxScale) - CGFloat(itemsCount - (attributes.indexPath as NSIndexPath).row) / CGFloat(scaleRatio)
|
||||
maximum += CGFloat(1.0 - maximum) * CGFloat(additionScale)
|
||||
|
||||
return CGAffineTransformMakeTranslation(dx, 0)
|
||||
}
|
||||
|
||||
private func calculateAlpha(attributes: UICollectionViewLayoutAttributes, itemWidth: CGFloat, offset: CGFloat) -> CGFloat {
|
||||
var currentContentOffsetX = offset - itemWidth * CGFloat(attributes.indexPath.row)
|
||||
currentContentOffsetX = min(max(currentContentOffsetX, 0),itemWidth)
|
||||
|
||||
let dx = (currentContentOffsetX / itemWidth)
|
||||
|
||||
return 1.0 - dx
|
||||
}
|
||||
var minimum = CGFloat(maxScale - 0.1) - CGFloat(itemsCount - (attributes.indexPath as NSIndexPath).row) / CGFloat(scaleRatio)
|
||||
minimum += CGFloat(1.0 - minimum) * CGFloat(additionScale)
|
||||
|
||||
var currentScale = (maximum + minimum) - (minimum + offset / (allWidth / (maximum - minimum)))
|
||||
currentScale = max(min(maximum, currentScale), minimum)
|
||||
return CGAffineTransform(scaleX: currentScale, y: currentScale)
|
||||
}
|
||||
|
||||
fileprivate func transformMove(_ attributes: UICollectionViewLayoutAttributes,
|
||||
itemWidth: CGFloat,
|
||||
offset: CGFloat) -> CGAffineTransform {
|
||||
var currentContentOffsetX = offset - itemWidth * CGFloat((attributes.indexPath as NSIndexPath).row)
|
||||
currentContentOffsetX = min(max(currentContentOffsetX, 0), itemWidth)
|
||||
|
||||
var dx = (currentContentOffsetX / itemWidth)
|
||||
if let collectionView = self.collectionView {
|
||||
dx *= collectionView.bounds.size.width / 8.0
|
||||
}
|
||||
dx = currentContentOffsetX - dx
|
||||
|
||||
return CGAffineTransform(translationX: dx, y: 0)
|
||||
}
|
||||
|
||||
fileprivate func calculateAlpha(_ attributes: UICollectionViewLayoutAttributes, itemWidth: CGFloat, offset: CGFloat) -> CGFloat {
|
||||
var currentContentOffsetX = offset - itemWidth * CGFloat((attributes.indexPath as NSIndexPath).row)
|
||||
currentContentOffsetX = min(max(currentContentOffsetX, 0), itemWidth)
|
||||
|
||||
let dx = (currentContentOffsetX / itemWidth)
|
||||
|
||||
return 1.0 - dx
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,127 +22,150 @@
|
||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
// THE SOFTWARE.
|
||||
|
||||
|
||||
import UIKit
|
||||
|
||||
// MARK: NavigationStack
|
||||
/// UINavigationcontroller with animation show lists of UIViewControllers
|
||||
open class NavigationStack: UINavigationController {
|
||||
|
||||
public class NavigationStack: UINavigationController {
|
||||
|
||||
@IBInspectable public var overlay: Float = 0.8
|
||||
@IBInspectable public var scaleRatio: Float = 14.0
|
||||
@IBInspectable public var scaleValue: Float = 0.99
|
||||
@IBInspectable public var decelerationRate: CGFloat = UIScrollViewDecelerationRateNormal
|
||||
|
||||
@IBInspectable public var bgColor: UIColor = .blackColor()
|
||||
|
||||
public var bgView: UIView? = nil
|
||||
private var screens = [UIImage]()
|
||||
|
||||
weak public var stackDelegate: UINavigationControllerDelegate? // use this instead delegate
|
||||
|
||||
public required init?(coder aDecoder: NSCoder) {
|
||||
super.init(coder: aDecoder)
|
||||
|
||||
delegate = self
|
||||
}
|
||||
var overlay: Float = 0.8
|
||||
var scaleRatio: Float = 14.0
|
||||
var scaleValue: Float = 0.99
|
||||
|
||||
/// A floating-point value that determines the rate of deceleration after the user lifts their finger.
|
||||
@IBInspectable open var decelerationRate: CGFloat = UIScrollView.DecelerationRate.normal.rawValue
|
||||
|
||||
/// The color to use for the background of the lists of UIViewcontrollers.
|
||||
@IBInspectable open var bgColor: UIColor = .black
|
||||
|
||||
/// The background UIView of the lists of UIViewcontrollers.
|
||||
open var bgView: UIView?
|
||||
fileprivate var screens = [UIImage]()
|
||||
|
||||
/// The delegate of the navigation controller object. Use this instead delegate.
|
||||
open weak var stackDelegate: UINavigationControllerDelegate?
|
||||
|
||||
/**
|
||||
The initialized navigation controller object or nil if there was a problem initializing the object.
|
||||
|
||||
- parameter aDecoder: aDecoder
|
||||
|
||||
- returns: The initialized navigation controller object or nil if there was a problem initializing the object.
|
||||
*/
|
||||
public required init?(coder aDecoder: NSCoder) {
|
||||
super.init(coder: aDecoder)
|
||||
|
||||
delegate = self
|
||||
}
|
||||
|
||||
/**
|
||||
Initializes and returns a newly created navigation controller.
|
||||
|
||||
- parameter rootViewController: The view controller that resides at the bottom of the navigation stack.
|
||||
|
||||
- returns: The initialized navigation controller object or nil if there was a problem initializing the object.
|
||||
*/
|
||||
public override init(rootViewController: UIViewController) {
|
||||
super.init(rootViewController: rootViewController)
|
||||
|
||||
delegate = self
|
||||
}
|
||||
|
||||
/**
|
||||
Necessary to prevent a crash
|
||||
*/
|
||||
public override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: Bundle?) {
|
||||
super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil)
|
||||
}
|
||||
}
|
||||
|
||||
// MARK: pulbic methods
|
||||
|
||||
extension NavigationStack {
|
||||
public func showControllers() {
|
||||
if screens.count == 0 {
|
||||
return
|
||||
|
||||
/**
|
||||
Show list of ViewControllers.
|
||||
*/
|
||||
public func showControllers() {
|
||||
if screens.count == 0 {
|
||||
return
|
||||
}
|
||||
|
||||
var allScreens = screens
|
||||
allScreens.append(view.takeScreenshot())
|
||||
let collectioView = CollectionStackViewController(images: allScreens,
|
||||
delegate: self,
|
||||
overlay: overlay,
|
||||
scaleRatio: scaleRatio,
|
||||
scaleValue: scaleValue,
|
||||
bgColor: bgColor,
|
||||
bgView: bgView,
|
||||
decelerationRate: decelerationRate)
|
||||
|
||||
present(collectioView, animated: false, completion: nil)
|
||||
}
|
||||
|
||||
var allScreens = screens
|
||||
allScreens.append(view.takeScreenshot())
|
||||
let collectioView = CollectionStackViewController(images: allScreens,
|
||||
delegate: self,
|
||||
overlay: overlay,
|
||||
scaleRatio: scaleRatio,
|
||||
scaleValue: scaleValue,
|
||||
bgColor: bgColor,
|
||||
bgView: bgView,
|
||||
decelerationRate: decelerationRate)
|
||||
|
||||
presentViewController(collectioView, animated: false, completion: nil)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// MARK: Additional helpers
|
||||
|
||||
extension NavigationStack {
|
||||
|
||||
private func popToIndex(index: Int, animated: Bool) {
|
||||
let viewController = viewControllers[index]
|
||||
popToViewController(viewController, animated: animated)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// MARK: UINavigationControllerDelegate
|
||||
|
||||
extension NavigationStack: UINavigationControllerDelegate {
|
||||
|
||||
public func navigationController(navigationController: UINavigationController,
|
||||
willShowViewController viewController: UIViewController,
|
||||
animated: Bool) {
|
||||
|
||||
stackDelegate?.navigationController?(navigationController, willShowViewController: viewController, animated: animated)
|
||||
|
||||
if navigationController.viewControllers.count > screens.count + 1 {
|
||||
screens.append(view.takeScreenshot())
|
||||
} else
|
||||
if navigationController.viewControllers.count == screens.count && screens.count > 0 {
|
||||
screens.removeLast()
|
||||
}
|
||||
}
|
||||
|
||||
public func navigationController(navigationController: UINavigationController, didShowViewController viewController: UIViewController, animated: Bool) {
|
||||
stackDelegate?.navigationController?(navigationController, didShowViewController: viewController, animated: animated)
|
||||
}
|
||||
|
||||
// ???
|
||||
// public func navigationControllerSupportedInterfaceOrientations(navigationController: UINavigationController) -> UIInterfaceOrientationMask {
|
||||
public func navigationController(_ navigationController: UINavigationController,
|
||||
willShow viewController: UIViewController,
|
||||
animated: Bool) {
|
||||
|
||||
stackDelegate?.navigationController?(navigationController, willShow: viewController, animated: animated)
|
||||
|
||||
if navigationController.viewControllers.count > screens.count + 1 {
|
||||
screens.append(view.takeScreenshot())
|
||||
} else
|
||||
if navigationController.viewControllers.count == screens.count && screens.count > 0 {
|
||||
screens.removeLast()
|
||||
}
|
||||
}
|
||||
|
||||
public func navigationController(_ navigationController: UINavigationController, didShow viewController: UIViewController, animated: Bool) {
|
||||
stackDelegate?.navigationController?(navigationController, didShow: viewController, animated: animated)
|
||||
}
|
||||
|
||||
// ???
|
||||
// public func navigationControllerSupportedInterfaceOrientations(navigationController: UINavigationController) -> UIInterfaceOrientationMask {
|
||||
// return stackDelegate?.navigationControllerSupportedInterfaceOrientations?(navigationController)
|
||||
// }
|
||||
|
||||
// ???
|
||||
// optional public func navigationControllerPreferredInterfaceOrientationForPresentation(navigationController: UINavigationController) -> UIInterfaceOrientation
|
||||
//
|
||||
// }
|
||||
|
||||
public func navigationController(navigationController: UINavigationController, interactionControllerForAnimationController animationController: UIViewControllerAnimatedTransitioning) -> UIViewControllerInteractiveTransitioning? {
|
||||
return stackDelegate?.navigationController?(navigationController, interactionControllerForAnimationController: animationController)
|
||||
}
|
||||
// ???
|
||||
// optional public func navigationControllerPreferredInterfaceOrientationForPresentation(navigationController: UINavigationController) -> UIInterfaceOrientation
|
||||
//
|
||||
|
||||
public func navigationController(navigationController: UINavigationController, animationControllerForOperation operation: UINavigationControllerOperation, fromViewController fromVC: UIViewController, toViewController toVC: UIViewController) -> UIViewControllerAnimatedTransitioning? {
|
||||
return stackDelegate?.navigationController?(navigationController, animationControllerForOperation: operation, fromViewController: fromVC, toViewController: toVC)
|
||||
}
|
||||
|
||||
public func navigationController(_ navigationController: UINavigationController, interactionControllerFor animationController: UIViewControllerAnimatedTransitioning) -> UIViewControllerInteractiveTransitioning? {
|
||||
return stackDelegate?.navigationController?(navigationController, interactionControllerFor: animationController)
|
||||
}
|
||||
|
||||
public func navigationController(_ navigationController: UINavigationController, animationControllerFor operation: UINavigationController.Operation, from fromVC: UIViewController, to toVC: UIViewController) -> UIViewControllerAnimatedTransitioning? {
|
||||
return stackDelegate?.navigationController?(navigationController, animationControllerFor: operation, from: fromVC, to: toVC)
|
||||
}
|
||||
}
|
||||
|
||||
extension NavigationStack: CollectionStackViewControllerDelegate {
|
||||
func controllerDidSelected(index index: Int) {
|
||||
popToIndex(index, animated: false)
|
||||
screens.removeRange(index..<screens.count)
|
||||
}
|
||||
func controllerDidSelected(index: Int) {
|
||||
|
||||
let newViewControllers = Array(viewControllers[0 ... index])
|
||||
setViewControllers(newViewControllers, animated: false)
|
||||
screens.removeSubrange(index ..< screens.count)
|
||||
}
|
||||
}
|
||||
|
||||
// MARK: UIView
|
||||
|
||||
extension UIView {
|
||||
|
||||
func takeScreenshot() -> UIImage {
|
||||
|
||||
UIGraphicsBeginImageContextWithOptions(self.bounds.size, false, UIScreen.mainScreen().scale)
|
||||
drawViewHierarchyInRect(self.bounds, afterScreenUpdates: true)
|
||||
|
||||
let image = UIGraphicsGetImageFromCurrentImageContext()
|
||||
UIGraphicsEndImageContext()
|
||||
|
||||
return image
|
||||
}
|
||||
|
||||
func takeScreenshot() -> UIImage {
|
||||
|
||||
UIGraphicsBeginImageContextWithOptions(bounds.size, false, UIScreen.main.scale)
|
||||
layer.render(in: UIGraphicsGetCurrentContext()!)
|
||||
|
||||
let image = UIGraphicsGetImageFromCurrentImageContext()
|
||||
UIGraphicsEndImageContext()
|
||||
|
||||
return image!
|
||||
}
|
||||
}
|
||||
|
||||
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 24 KiB |
@@ -0,0 +1,89 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<title>Classes Reference</title>
|
||||
<link rel="stylesheet" type="text/css" href="css/jazzy.css" />
|
||||
<link rel="stylesheet" type="text/css" href="css/highlight.css" />
|
||||
<meta charset='utf-8'>
|
||||
<script src="js/jquery.min.js" defer></script>
|
||||
<script src="js/jazzy.js" defer></script>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<a title="Classes Reference"></a>
|
||||
<header>
|
||||
<div class="content-wrapper">
|
||||
<p><a href="index.html">NavigationStackDemo Docs</a> (69% documented)</p>
|
||||
</div>
|
||||
</header>
|
||||
<div class="content-wrapper">
|
||||
<p id="breadcrumbs">
|
||||
<a href="index.html">NavigationStackDemo Reference</a>
|
||||
<img id="carat" src="img/carat.png" />
|
||||
Classes Reference
|
||||
</p>
|
||||
</div>
|
||||
<div class="content-wrapper">
|
||||
<nav class="sidebar">
|
||||
<ul class="nav-groups">
|
||||
<li class="nav-group-name">
|
||||
<a href="Classes.html">Classes</a>
|
||||
<ul class="nav-group-tasks">
|
||||
<li class="nav-group-task">
|
||||
<a href="Classes/NavigationStack.html">NavigationStack</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
<article class="main-content">
|
||||
<section>
|
||||
<section class="section">
|
||||
<h1>Classes</h1>
|
||||
<p>The following classes are available globally.</p>
|
||||
|
||||
</section>
|
||||
<section class="section task-group-section">
|
||||
<div class="task-group">
|
||||
<ul>
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:C19NavigationStackDemo15NavigationStack"></a>
|
||||
<a name="//apple_ref/swift/Class/NavigationStack" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:C19NavigationStackDemo15NavigationStack">NavigationStack</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
<div class="pointer-container"></div>
|
||||
<section class="section">
|
||||
<div class="pointer"></div>
|
||||
<div class="abstract">
|
||||
<p>UINavigationcontroller with animation show lists of UIViewControllers</p>
|
||||
|
||||
<a href="Classes/NavigationStack.html" class="slightly-smaller">See more</a>
|
||||
</div>
|
||||
<div class="declaration">
|
||||
<h4>Declaration</h4>
|
||||
<div class="language">
|
||||
<p class="aside-title">Swift</p>
|
||||
<pre class="highlight"><code><span class="kd">public</span> <span class="kd">class</span> <span class="kt">NavigationStack</span><span class="p">:</span> <span class="kt">UINavigationController</span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
<section id="footer">
|
||||
<p>© 2016 <a class="link" href="https://github.com/Ramotion/navigation-stack" target="_blank" rel="external">AlexKalinkin</a>. All rights reserved. (Last updated: 2016-06-10)</p>
|
||||
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.5.0</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
|
||||
</section>
|
||||
</article>
|
||||
</div>
|
||||
</body>
|
||||
</div>
|
||||
</html>
|
||||
@@ -0,0 +1,259 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<title>NavigationStack Class Reference</title>
|
||||
<link rel="stylesheet" type="text/css" href="../css/jazzy.css" />
|
||||
<link rel="stylesheet" type="text/css" href="../css/highlight.css" />
|
||||
<meta charset='utf-8'>
|
||||
<script src="../js/jquery.min.js" defer></script>
|
||||
<script src="../js/jazzy.js" defer></script>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<a name="//apple_ref/swift/Class/NavigationStack" class="dashAnchor"></a>
|
||||
<a title="NavigationStack Class Reference"></a>
|
||||
<header>
|
||||
<div class="content-wrapper">
|
||||
<p><a href="../index.html">NavigationStackDemo Docs</a> (69% documented)</p>
|
||||
</div>
|
||||
</header>
|
||||
<div class="content-wrapper">
|
||||
<p id="breadcrumbs">
|
||||
<a href="../index.html">NavigationStackDemo Reference</a>
|
||||
<img id="carat" src="../img/carat.png" />
|
||||
NavigationStack Class Reference
|
||||
</p>
|
||||
</div>
|
||||
<div class="content-wrapper">
|
||||
<nav class="sidebar">
|
||||
<ul class="nav-groups">
|
||||
<li class="nav-group-name">
|
||||
<a href="../Classes.html">Classes</a>
|
||||
<ul class="nav-group-tasks">
|
||||
<li class="nav-group-task">
|
||||
<a href="../Classes/NavigationStack.html">NavigationStack</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
<article class="main-content">
|
||||
<section>
|
||||
<section class="section">
|
||||
<h1>NavigationStack</h1>
|
||||
<div class="declaration">
|
||||
<div class="language">
|
||||
<pre class="highlight"><code><span class="kd">public</span> <span class="kd">class</span> <span class="kt">NavigationStack</span><span class="p">:</span> <span class="kt">UINavigationController</span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<p>UINavigationcontroller with animation show lists of UIViewControllers</p>
|
||||
|
||||
</section>
|
||||
<section class="section task-group-section">
|
||||
<div class="task-group">
|
||||
<ul>
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:vC19NavigationStackDemo15NavigationStack16decelerationRateV12CoreGraphics7CGFloat"></a>
|
||||
<a name="//apple_ref/swift/Property/decelerationRate" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:vC19NavigationStackDemo15NavigationStack16decelerationRateV12CoreGraphics7CGFloat">decelerationRate</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
<div class="pointer-container"></div>
|
||||
<section class="section">
|
||||
<div class="pointer"></div>
|
||||
<div class="abstract">
|
||||
<p>A floating-point value that determines the rate of deceleration after the user lifts their finger.</p>
|
||||
|
||||
</div>
|
||||
<div class="declaration">
|
||||
<h4>Declaration</h4>
|
||||
<div class="language">
|
||||
<p class="aside-title">Swift</p>
|
||||
<pre class="highlight"><code><span class="kd">@IBInspectable</span> <span class="kd">public</span> <span class="k">var</span> <span class="nv">decelerationRate</span><span class="p">:</span> <span class="kt">CGFloat</span> <span class="o">=</span> <span class="kt">UIScrollViewDecelerationRateNormal</span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</li>
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:vC19NavigationStackDemo15NavigationStack7bgColorCSo7UIColor"></a>
|
||||
<a name="//apple_ref/swift/Property/bgColor" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:vC19NavigationStackDemo15NavigationStack7bgColorCSo7UIColor">bgColor</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
<div class="pointer-container"></div>
|
||||
<section class="section">
|
||||
<div class="pointer"></div>
|
||||
<div class="abstract">
|
||||
<p>The color to use for the background of the lists of UIViewcontrollers.</p>
|
||||
|
||||
</div>
|
||||
<div class="declaration">
|
||||
<h4>Declaration</h4>
|
||||
<div class="language">
|
||||
<p class="aside-title">Swift</p>
|
||||
<pre class="highlight"><code><span class="kd">@IBInspectable</span> <span class="kd">public</span> <span class="k">var</span> <span class="nv">bgColor</span><span class="p">:</span> <span class="kt">UIColor</span> <span class="o">=</span> <span class="o">.</span><span class="nf">blackColor</span><span class="p">()</span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</li>
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:vC19NavigationStackDemo15NavigationStack6bgViewGSqCSo6UIView_"></a>
|
||||
<a name="//apple_ref/swift/Property/bgView" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:vC19NavigationStackDemo15NavigationStack6bgViewGSqCSo6UIView_">bgView</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
<div class="pointer-container"></div>
|
||||
<section class="section">
|
||||
<div class="pointer"></div>
|
||||
<div class="abstract">
|
||||
<p>The background UIView of the lists of UIViewcontrollers.</p>
|
||||
|
||||
</div>
|
||||
<div class="declaration">
|
||||
<h4>Declaration</h4>
|
||||
<div class="language">
|
||||
<p class="aside-title">Swift</p>
|
||||
<pre class="highlight"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">bgView</span><span class="p">:</span> <span class="kt">UIView</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</li>
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:vC19NavigationStackDemo15NavigationStack13stackDelegateXwGSqPSo30UINavigationControllerDelegate__"></a>
|
||||
<a name="//apple_ref/swift/Property/stackDelegate" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:vC19NavigationStackDemo15NavigationStack13stackDelegateXwGSqPSo30UINavigationControllerDelegate__">stackDelegate</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
<div class="pointer-container"></div>
|
||||
<section class="section">
|
||||
<div class="pointer"></div>
|
||||
<div class="abstract">
|
||||
<p>The delegate of the navigation controller object. Use this instead delegate.</p>
|
||||
|
||||
</div>
|
||||
<div class="declaration">
|
||||
<h4>Declaration</h4>
|
||||
<div class="language">
|
||||
<p class="aside-title">Swift</p>
|
||||
<pre class="highlight"><code><span class="k">weak</span> <span class="kd">public</span> <span class="k">var</span> <span class="nv">stackDelegate</span><span class="p">:</span> <span class="kt">UINavigationControllerDelegate</span><span class="p">?</span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</li>
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:FC19NavigationStackDemo15NavigationStackcFT5coderCSo7NSCoder_GSqS0__"></a>
|
||||
<a name="//apple_ref/swift/Method/init(coder:)" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:FC19NavigationStackDemo15NavigationStackcFT5coderCSo7NSCoder_GSqS0__">init(coder:)</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
<div class="pointer-container"></div>
|
||||
<section class="section">
|
||||
<div class="pointer"></div>
|
||||
<div class="abstract">
|
||||
<p>The initialized navigation controller object or nil if there was a problem initializing the object.</p>
|
||||
|
||||
</div>
|
||||
<div class="declaration">
|
||||
<h4>Declaration</h4>
|
||||
<div class="language">
|
||||
<p class="aside-title">Swift</p>
|
||||
<pre class="highlight"><code><span class="kd">public</span> <span class="kd">required</span> <span class="nf">init</span><span class="p">?(</span><span class="n">coder</span> <span class="nv">aDecoder</span><span class="p">:</span> <span class="kt">NSCoder</span><span class="p">)</span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<h4>Parameters</h4>
|
||||
<table class="graybox">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
<code>
|
||||
<em>aDecoder</em>
|
||||
</code>
|
||||
</td>
|
||||
<td>
|
||||
<div>
|
||||
<p>aDecoder</p>
|
||||
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div>
|
||||
<h4>Return Value</h4>
|
||||
<p>The initialized navigation controller object or nil if there was a problem initializing the object.</p>
|
||||
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="task-group">
|
||||
<ul>
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:FC19NavigationStackDemo15NavigationStack15showControllersFT_T_"></a>
|
||||
<a name="//apple_ref/swift/Method/showControllers()" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:FC19NavigationStackDemo15NavigationStack15showControllersFT_T_">showControllers()</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
<div class="pointer-container"></div>
|
||||
<section class="section">
|
||||
<div class="pointer"></div>
|
||||
<div class="abstract">
|
||||
<p>Show list of ViewControllers.</p>
|
||||
|
||||
</div>
|
||||
<div class="declaration">
|
||||
<h4>Declaration</h4>
|
||||
<div class="language">
|
||||
<p class="aside-title">Swift</p>
|
||||
<pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">showControllers</span><span class="p">()</span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
<section id="footer">
|
||||
<p>© 2016 <a class="link" href="https://github.com/Ramotion/navigation-stack" target="_blank" rel="external">AlexKalinkin</a>. All rights reserved. (Last updated: 2016-06-10)</p>
|
||||
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.5.0</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
|
||||
</section>
|
||||
</article>
|
||||
</div>
|
||||
</body>
|
||||
</div>
|
||||
</html>
|
||||
@@ -0,0 +1,200 @@
|
||||
/* Credit to https://gist.github.com/wataru420/2048287 */
|
||||
.highlight {
|
||||
/* Comment */
|
||||
/* Error */
|
||||
/* Keyword */
|
||||
/* Operator */
|
||||
/* Comment.Multiline */
|
||||
/* Comment.Preproc */
|
||||
/* Comment.Single */
|
||||
/* Comment.Special */
|
||||
/* Generic.Deleted */
|
||||
/* Generic.Deleted.Specific */
|
||||
/* Generic.Emph */
|
||||
/* Generic.Error */
|
||||
/* Generic.Heading */
|
||||
/* Generic.Inserted */
|
||||
/* Generic.Inserted.Specific */
|
||||
/* Generic.Output */
|
||||
/* Generic.Prompt */
|
||||
/* Generic.Strong */
|
||||
/* Generic.Subheading */
|
||||
/* Generic.Traceback */
|
||||
/* Keyword.Constant */
|
||||
/* Keyword.Declaration */
|
||||
/* Keyword.Pseudo */
|
||||
/* Keyword.Reserved */
|
||||
/* Keyword.Type */
|
||||
/* Literal.Number */
|
||||
/* Literal.String */
|
||||
/* Name.Attribute */
|
||||
/* Name.Builtin */
|
||||
/* Name.Class */
|
||||
/* Name.Constant */
|
||||
/* Name.Entity */
|
||||
/* Name.Exception */
|
||||
/* Name.Function */
|
||||
/* Name.Namespace */
|
||||
/* Name.Tag */
|
||||
/* Name.Variable */
|
||||
/* Operator.Word */
|
||||
/* Text.Whitespace */
|
||||
/* Literal.Number.Float */
|
||||
/* Literal.Number.Hex */
|
||||
/* Literal.Number.Integer */
|
||||
/* Literal.Number.Oct */
|
||||
/* Literal.String.Backtick */
|
||||
/* Literal.String.Char */
|
||||
/* Literal.String.Doc */
|
||||
/* Literal.String.Double */
|
||||
/* Literal.String.Escape */
|
||||
/* Literal.String.Heredoc */
|
||||
/* Literal.String.Interpol */
|
||||
/* Literal.String.Other */
|
||||
/* Literal.String.Regex */
|
||||
/* Literal.String.Single */
|
||||
/* Literal.String.Symbol */
|
||||
/* Name.Builtin.Pseudo */
|
||||
/* Name.Variable.Class */
|
||||
/* Name.Variable.Global */
|
||||
/* Name.Variable.Instance */
|
||||
/* Literal.Number.Integer.Long */ }
|
||||
.highlight .c {
|
||||
color: #999988;
|
||||
font-style: italic; }
|
||||
.highlight .err {
|
||||
color: #a61717;
|
||||
background-color: #e3d2d2; }
|
||||
.highlight .k {
|
||||
color: #000000;
|
||||
font-weight: bold; }
|
||||
.highlight .o {
|
||||
color: #000000;
|
||||
font-weight: bold; }
|
||||
.highlight .cm {
|
||||
color: #999988;
|
||||
font-style: italic; }
|
||||
.highlight .cp {
|
||||
color: #999999;
|
||||
font-weight: bold; }
|
||||
.highlight .c1 {
|
||||
color: #999988;
|
||||
font-style: italic; }
|
||||
.highlight .cs {
|
||||
color: #999999;
|
||||
font-weight: bold;
|
||||
font-style: italic; }
|
||||
.highlight .gd {
|
||||
color: #000000;
|
||||
background-color: #ffdddd; }
|
||||
.highlight .gd .x {
|
||||
color: #000000;
|
||||
background-color: #ffaaaa; }
|
||||
.highlight .ge {
|
||||
color: #000000;
|
||||
font-style: italic; }
|
||||
.highlight .gr {
|
||||
color: #aa0000; }
|
||||
.highlight .gh {
|
||||
color: #999999; }
|
||||
.highlight .gi {
|
||||
color: #000000;
|
||||
background-color: #ddffdd; }
|
||||
.highlight .gi .x {
|
||||
color: #000000;
|
||||
background-color: #aaffaa; }
|
||||
.highlight .go {
|
||||
color: #888888; }
|
||||
.highlight .gp {
|
||||
color: #555555; }
|
||||
.highlight .gs {
|
||||
font-weight: bold; }
|
||||
.highlight .gu {
|
||||
color: #aaaaaa; }
|
||||
.highlight .gt {
|
||||
color: #aa0000; }
|
||||
.highlight .kc {
|
||||
color: #000000;
|
||||
font-weight: bold; }
|
||||
.highlight .kd {
|
||||
color: #000000;
|
||||
font-weight: bold; }
|
||||
.highlight .kp {
|
||||
color: #000000;
|
||||
font-weight: bold; }
|
||||
.highlight .kr {
|
||||
color: #000000;
|
||||
font-weight: bold; }
|
||||
.highlight .kt {
|
||||
color: #445588; }
|
||||
.highlight .m {
|
||||
color: #009999; }
|
||||
.highlight .s {
|
||||
color: #d14; }
|
||||
.highlight .na {
|
||||
color: #008080; }
|
||||
.highlight .nb {
|
||||
color: #0086B3; }
|
||||
.highlight .nc {
|
||||
color: #445588;
|
||||
font-weight: bold; }
|
||||
.highlight .no {
|
||||
color: #008080; }
|
||||
.highlight .ni {
|
||||
color: #800080; }
|
||||
.highlight .ne {
|
||||
color: #990000;
|
||||
font-weight: bold; }
|
||||
.highlight .nf {
|
||||
color: #990000; }
|
||||
.highlight .nn {
|
||||
color: #555555; }
|
||||
.highlight .nt {
|
||||
color: #000080; }
|
||||
.highlight .nv {
|
||||
color: #008080; }
|
||||
.highlight .ow {
|
||||
color: #000000;
|
||||
font-weight: bold; }
|
||||
.highlight .w {
|
||||
color: #bbbbbb; }
|
||||
.highlight .mf {
|
||||
color: #009999; }
|
||||
.highlight .mh {
|
||||
color: #009999; }
|
||||
.highlight .mi {
|
||||
color: #009999; }
|
||||
.highlight .mo {
|
||||
color: #009999; }
|
||||
.highlight .sb {
|
||||
color: #d14; }
|
||||
.highlight .sc {
|
||||
color: #d14; }
|
||||
.highlight .sd {
|
||||
color: #d14; }
|
||||
.highlight .s2 {
|
||||
color: #d14; }
|
||||
.highlight .se {
|
||||
color: #d14; }
|
||||
.highlight .sh {
|
||||
color: #d14; }
|
||||
.highlight .si {
|
||||
color: #d14; }
|
||||
.highlight .sx {
|
||||
color: #d14; }
|
||||
.highlight .sr {
|
||||
color: #009926; }
|
||||
.highlight .s1 {
|
||||
color: #d14; }
|
||||
.highlight .ss {
|
||||
color: #990073; }
|
||||
.highlight .bp {
|
||||
color: #999999; }
|
||||
.highlight .vc {
|
||||
color: #008080; }
|
||||
.highlight .vg {
|
||||
color: #008080; }
|
||||
.highlight .vi {
|
||||
color: #008080; }
|
||||
.highlight .il {
|
||||
color: #009999; }
|
||||
@@ -0,0 +1,331 @@
|
||||
html, body, div, span, h1, h3, h4, p, a, code, em, img, ul, li, table, tbody, tr, td {
|
||||
background: transparent;
|
||||
border: 0;
|
||||
margin: 0;
|
||||
outline: 0;
|
||||
padding: 0;
|
||||
vertical-align: baseline; }
|
||||
|
||||
body {
|
||||
background-color: #f2f2f2;
|
||||
font-family: Helvetica, freesans, Arial, sans-serif;
|
||||
font-size: 14px;
|
||||
-webkit-font-smoothing: subpixel-antialiased;
|
||||
word-wrap: break-word; }
|
||||
|
||||
h1, h2, h3 {
|
||||
margin-top: 0.8em;
|
||||
margin-bottom: 0.3em;
|
||||
font-weight: 100;
|
||||
color: black; }
|
||||
|
||||
h1 {
|
||||
font-size: 2.5em; }
|
||||
|
||||
h2 {
|
||||
font-size: 2em;
|
||||
border-bottom: 1px solid #e2e2e2; }
|
||||
|
||||
h4 {
|
||||
font-size: 13px;
|
||||
line-height: 1.5;
|
||||
margin-top: 21px; }
|
||||
|
||||
h5 {
|
||||
font-size: 1.1em; }
|
||||
|
||||
h6 {
|
||||
font-size: 1.1em;
|
||||
color: #777; }
|
||||
|
||||
.section-name {
|
||||
color: gray;
|
||||
display: block;
|
||||
font-family: Helvetica;
|
||||
font-size: 22px;
|
||||
font-weight: 100;
|
||||
margin-bottom: 15px; }
|
||||
|
||||
pre, code {
|
||||
font: 0.95em Menlo, monospace;
|
||||
color: #777;
|
||||
word-wrap: normal; }
|
||||
|
||||
p code, li code {
|
||||
background-color: #eee;
|
||||
padding: 2px 4px;
|
||||
border-radius: 4px; }
|
||||
|
||||
a {
|
||||
color: #0088cc;
|
||||
text-decoration: none; }
|
||||
|
||||
ul {
|
||||
padding-left: 15px; }
|
||||
|
||||
li {
|
||||
line-height: 1.8em; }
|
||||
|
||||
img {
|
||||
max-width: 100%; }
|
||||
|
||||
blockquote {
|
||||
margin-left: 0;
|
||||
padding: 0 10px;
|
||||
border-left: 4px solid #ccc; }
|
||||
|
||||
.content-wrapper {
|
||||
margin: 0 auto;
|
||||
width: 980px; }
|
||||
|
||||
header {
|
||||
font-size: 0.85em;
|
||||
line-height: 26px;
|
||||
background-color: #414141;
|
||||
position: fixed;
|
||||
width: 100%;
|
||||
z-index: 1; }
|
||||
header img {
|
||||
padding-right: 6px;
|
||||
vertical-align: -4px;
|
||||
height: 16px; }
|
||||
header a {
|
||||
color: #fff; }
|
||||
header p {
|
||||
float: left;
|
||||
color: #999; }
|
||||
header .header-right {
|
||||
float: right;
|
||||
margin-left: 16px; }
|
||||
|
||||
#breadcrumbs {
|
||||
background-color: #f2f2f2;
|
||||
height: 27px;
|
||||
padding-top: 17px;
|
||||
position: fixed;
|
||||
width: 100%;
|
||||
z-index: 1;
|
||||
margin-top: 26px; }
|
||||
#breadcrumbs #carat {
|
||||
height: 10px;
|
||||
margin: 0 5px; }
|
||||
|
||||
.sidebar {
|
||||
background-color: #f9f9f9;
|
||||
border: 1px solid #e2e2e2;
|
||||
overflow-y: auto;
|
||||
overflow-x: hidden;
|
||||
position: fixed;
|
||||
top: 70px;
|
||||
bottom: 0;
|
||||
width: 230px;
|
||||
word-wrap: normal; }
|
||||
|
||||
.nav-groups {
|
||||
list-style-type: none;
|
||||
background: #fff;
|
||||
padding-left: 0; }
|
||||
|
||||
.nav-group-name {
|
||||
border-bottom: 1px solid #e2e2e2;
|
||||
font-size: 1.1em;
|
||||
font-weight: 100;
|
||||
padding: 15px 0 15px 20px; }
|
||||
.nav-group-name > a {
|
||||
color: #333; }
|
||||
|
||||
.nav-group-tasks {
|
||||
margin-top: 5px; }
|
||||
|
||||
.nav-group-task {
|
||||
font-size: 0.9em;
|
||||
list-style-type: none; }
|
||||
.nav-group-task a {
|
||||
color: #888; }
|
||||
|
||||
.main-content {
|
||||
background-color: #fff;
|
||||
border: 1px solid #e2e2e2;
|
||||
margin-left: 246px;
|
||||
position: absolute;
|
||||
overflow: hidden;
|
||||
padding-bottom: 60px;
|
||||
top: 70px;
|
||||
width: 734px; }
|
||||
.main-content p, .main-content a, .main-content code, .main-content em, .main-content ul, .main-content table, .main-content blockquote {
|
||||
margin-bottom: 1em; }
|
||||
.main-content p {
|
||||
line-height: 1.8em; }
|
||||
.main-content section .section:first-child {
|
||||
margin-top: 0;
|
||||
padding-top: 0; }
|
||||
.main-content section .task-group-section .task-group:first-of-type {
|
||||
padding-top: 10px; }
|
||||
.main-content section .task-group-section .task-group:first-of-type .section-name {
|
||||
padding-top: 15px; }
|
||||
|
||||
.section {
|
||||
padding: 0 25px; }
|
||||
|
||||
.highlight {
|
||||
background-color: #eee;
|
||||
padding: 10px 12px;
|
||||
border: 1px solid #e2e2e2;
|
||||
border-radius: 4px;
|
||||
overflow-x: auto; }
|
||||
|
||||
.declaration .highlight {
|
||||
overflow-x: initial;
|
||||
padding: 0 40px 40px 0;
|
||||
margin-bottom: -25px;
|
||||
background-color: transparent;
|
||||
border: none; }
|
||||
|
||||
.section-name {
|
||||
margin: 0;
|
||||
margin-left: 18px; }
|
||||
|
||||
.task-group-section {
|
||||
padding-left: 6px;
|
||||
border-top: 1px solid #e2e2e2; }
|
||||
|
||||
.task-group {
|
||||
padding-top: 0px; }
|
||||
|
||||
.task-name-container a[name]:before {
|
||||
content: "";
|
||||
display: block;
|
||||
padding-top: 70px;
|
||||
margin: -70px 0 0; }
|
||||
|
||||
.item {
|
||||
padding-top: 8px;
|
||||
width: 100%;
|
||||
list-style-type: none; }
|
||||
.item a[name]:before {
|
||||
content: "";
|
||||
display: block;
|
||||
padding-top: 70px;
|
||||
margin: -70px 0 0; }
|
||||
.item code {
|
||||
background-color: transparent;
|
||||
padding: 0; }
|
||||
.item .token {
|
||||
padding-left: 3px;
|
||||
margin-left: 15px;
|
||||
font-size: 11.9px; }
|
||||
.item .declaration-note {
|
||||
font-size: .85em;
|
||||
color: gray;
|
||||
font-style: italic; }
|
||||
|
||||
.pointer-container {
|
||||
border-bottom: 1px solid #e2e2e2;
|
||||
left: -23px;
|
||||
padding-bottom: 13px;
|
||||
position: relative;
|
||||
width: 110%; }
|
||||
|
||||
.pointer {
|
||||
background: #f9f9f9;
|
||||
border-left: 1px solid #e2e2e2;
|
||||
border-top: 1px solid #e2e2e2;
|
||||
height: 12px;
|
||||
left: 21px;
|
||||
top: -7px;
|
||||
-webkit-transform: rotate(45deg);
|
||||
-moz-transform: rotate(45deg);
|
||||
-o-transform: rotate(45deg);
|
||||
transform: rotate(45deg);
|
||||
position: absolute;
|
||||
width: 12px; }
|
||||
|
||||
.height-container {
|
||||
display: none;
|
||||
left: -25px;
|
||||
padding: 0 25px;
|
||||
position: relative;
|
||||
width: 100%;
|
||||
overflow: hidden; }
|
||||
.height-container .section {
|
||||
background: #f9f9f9;
|
||||
border-bottom: 1px solid #e2e2e2;
|
||||
left: -25px;
|
||||
position: relative;
|
||||
width: 100%;
|
||||
padding-top: 10px;
|
||||
padding-bottom: 5px; }
|
||||
|
||||
.aside, .language {
|
||||
padding: 6px 12px;
|
||||
margin: 12px 0;
|
||||
border-left: 5px solid #dddddd;
|
||||
overflow-y: hidden; }
|
||||
.aside .aside-title, .language .aside-title {
|
||||
font-size: 9px;
|
||||
letter-spacing: 2px;
|
||||
text-transform: uppercase;
|
||||
padding-bottom: 0;
|
||||
margin: 0;
|
||||
color: #aaa;
|
||||
-webkit-user-select: none; }
|
||||
.aside p:last-child, .language p:last-child {
|
||||
margin-bottom: 0; }
|
||||
|
||||
.language {
|
||||
border-left: 5px solid #cde9f4; }
|
||||
.language .aside-title {
|
||||
color: #4b8afb; }
|
||||
|
||||
.aside-warning {
|
||||
border-left: 5px solid #ff6666; }
|
||||
.aside-warning .aside-title {
|
||||
color: #ff0000; }
|
||||
|
||||
.graybox {
|
||||
border-collapse: collapse;
|
||||
width: 100%; }
|
||||
.graybox p {
|
||||
margin: 0;
|
||||
word-break: break-word;
|
||||
min-width: 50px; }
|
||||
.graybox td {
|
||||
border: 1px solid #e2e2e2;
|
||||
padding: 5px 25px 5px 10px;
|
||||
vertical-align: middle; }
|
||||
.graybox tr td:first-of-type {
|
||||
text-align: right;
|
||||
padding: 7px;
|
||||
vertical-align: top;
|
||||
word-break: normal;
|
||||
width: 40px; }
|
||||
|
||||
.slightly-smaller {
|
||||
font-size: 0.9em; }
|
||||
|
||||
#footer {
|
||||
position: absolute;
|
||||
bottom: 10px;
|
||||
margin-left: 25px; }
|
||||
#footer p {
|
||||
margin: 0;
|
||||
color: #aaa;
|
||||
font-size: 0.8em; }
|
||||
|
||||
html.dash header, html.dash #breadcrumbs, html.dash .sidebar {
|
||||
display: none; }
|
||||
html.dash .main-content {
|
||||
width: 980px;
|
||||
margin-left: 0;
|
||||
border: none;
|
||||
width: 100%;
|
||||
top: 0;
|
||||
padding-bottom: 0; }
|
||||
html.dash .height-container {
|
||||
display: block; }
|
||||
html.dash .item .token {
|
||||
margin-left: 0; }
|
||||
html.dash .content-wrapper {
|
||||
width: auto; }
|
||||
html.dash #footer {
|
||||
position: static; }
|
||||
@@ -0,0 +1,20 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>com.jazzy.navigationstackdemo</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>NavigationStackDemo</string>
|
||||
<key>DocSetPlatformFamily</key>
|
||||
<string>jazzy</string>
|
||||
<key>isDashDocset</key>
|
||||
<true/>
|
||||
<key>dashIndexFilePath</key>
|
||||
<string>index.html</string>
|
||||
<key>isJavaScriptEnabled</key>
|
||||
<true/>
|
||||
<key>DashDocSetFamily</key>
|
||||
<string>dashtoc</string>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -0,0 +1,89 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<title>Classes Reference</title>
|
||||
<link rel="stylesheet" type="text/css" href="css/jazzy.css" />
|
||||
<link rel="stylesheet" type="text/css" href="css/highlight.css" />
|
||||
<meta charset='utf-8'>
|
||||
<script src="js/jquery.min.js" defer></script>
|
||||
<script src="js/jazzy.js" defer></script>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<a title="Classes Reference"></a>
|
||||
<header>
|
||||
<div class="content-wrapper">
|
||||
<p><a href="index.html">NavigationStackDemo Docs</a> (69% documented)</p>
|
||||
</div>
|
||||
</header>
|
||||
<div class="content-wrapper">
|
||||
<p id="breadcrumbs">
|
||||
<a href="index.html">NavigationStackDemo Reference</a>
|
||||
<img id="carat" src="img/carat.png" />
|
||||
Classes Reference
|
||||
</p>
|
||||
</div>
|
||||
<div class="content-wrapper">
|
||||
<nav class="sidebar">
|
||||
<ul class="nav-groups">
|
||||
<li class="nav-group-name">
|
||||
<a href="Classes.html">Classes</a>
|
||||
<ul class="nav-group-tasks">
|
||||
<li class="nav-group-task">
|
||||
<a href="Classes/NavigationStack.html">NavigationStack</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
<article class="main-content">
|
||||
<section>
|
||||
<section class="section">
|
||||
<h1>Classes</h1>
|
||||
<p>The following classes are available globally.</p>
|
||||
|
||||
</section>
|
||||
<section class="section task-group-section">
|
||||
<div class="task-group">
|
||||
<ul>
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:C19NavigationStackDemo15NavigationStack"></a>
|
||||
<a name="//apple_ref/swift/Class/NavigationStack" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:C19NavigationStackDemo15NavigationStack">NavigationStack</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
<div class="pointer-container"></div>
|
||||
<section class="section">
|
||||
<div class="pointer"></div>
|
||||
<div class="abstract">
|
||||
<p>UINavigationcontroller with animation show lists of UIViewControllers</p>
|
||||
|
||||
<a href="Classes/NavigationStack.html" class="slightly-smaller">See more</a>
|
||||
</div>
|
||||
<div class="declaration">
|
||||
<h4>Declaration</h4>
|
||||
<div class="language">
|
||||
<p class="aside-title">Swift</p>
|
||||
<pre class="highlight"><code><span class="kd">public</span> <span class="kd">class</span> <span class="kt">NavigationStack</span><span class="p">:</span> <span class="kt">UINavigationController</span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
<section id="footer">
|
||||
<p>© 2016 <a class="link" href="https://github.com/Ramotion/navigation-stack" target="_blank" rel="external">AlexKalinkin</a>. All rights reserved. (Last updated: 2016-06-10)</p>
|
||||
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.5.0</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
|
||||
</section>
|
||||
</article>
|
||||
</div>
|
||||
</body>
|
||||
</div>
|
||||
</html>
|
||||
@@ -0,0 +1,259 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<title>NavigationStack Class Reference</title>
|
||||
<link rel="stylesheet" type="text/css" href="../css/jazzy.css" />
|
||||
<link rel="stylesheet" type="text/css" href="../css/highlight.css" />
|
||||
<meta charset='utf-8'>
|
||||
<script src="../js/jquery.min.js" defer></script>
|
||||
<script src="../js/jazzy.js" defer></script>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<a name="//apple_ref/swift/Class/NavigationStack" class="dashAnchor"></a>
|
||||
<a title="NavigationStack Class Reference"></a>
|
||||
<header>
|
||||
<div class="content-wrapper">
|
||||
<p><a href="../index.html">NavigationStackDemo Docs</a> (69% documented)</p>
|
||||
</div>
|
||||
</header>
|
||||
<div class="content-wrapper">
|
||||
<p id="breadcrumbs">
|
||||
<a href="../index.html">NavigationStackDemo Reference</a>
|
||||
<img id="carat" src="../img/carat.png" />
|
||||
NavigationStack Class Reference
|
||||
</p>
|
||||
</div>
|
||||
<div class="content-wrapper">
|
||||
<nav class="sidebar">
|
||||
<ul class="nav-groups">
|
||||
<li class="nav-group-name">
|
||||
<a href="../Classes.html">Classes</a>
|
||||
<ul class="nav-group-tasks">
|
||||
<li class="nav-group-task">
|
||||
<a href="../Classes/NavigationStack.html">NavigationStack</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
<article class="main-content">
|
||||
<section>
|
||||
<section class="section">
|
||||
<h1>NavigationStack</h1>
|
||||
<div class="declaration">
|
||||
<div class="language">
|
||||
<pre class="highlight"><code><span class="kd">public</span> <span class="kd">class</span> <span class="kt">NavigationStack</span><span class="p">:</span> <span class="kt">UINavigationController</span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<p>UINavigationcontroller with animation show lists of UIViewControllers</p>
|
||||
|
||||
</section>
|
||||
<section class="section task-group-section">
|
||||
<div class="task-group">
|
||||
<ul>
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:vC19NavigationStackDemo15NavigationStack16decelerationRateV12CoreGraphics7CGFloat"></a>
|
||||
<a name="//apple_ref/swift/Property/decelerationRate" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:vC19NavigationStackDemo15NavigationStack16decelerationRateV12CoreGraphics7CGFloat">decelerationRate</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
<div class="pointer-container"></div>
|
||||
<section class="section">
|
||||
<div class="pointer"></div>
|
||||
<div class="abstract">
|
||||
<p>A floating-point value that determines the rate of deceleration after the user lifts their finger.</p>
|
||||
|
||||
</div>
|
||||
<div class="declaration">
|
||||
<h4>Declaration</h4>
|
||||
<div class="language">
|
||||
<p class="aside-title">Swift</p>
|
||||
<pre class="highlight"><code><span class="kd">@IBInspectable</span> <span class="kd">public</span> <span class="k">var</span> <span class="nv">decelerationRate</span><span class="p">:</span> <span class="kt">CGFloat</span> <span class="o">=</span> <span class="kt">UIScrollViewDecelerationRateNormal</span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</li>
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:vC19NavigationStackDemo15NavigationStack7bgColorCSo7UIColor"></a>
|
||||
<a name="//apple_ref/swift/Property/bgColor" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:vC19NavigationStackDemo15NavigationStack7bgColorCSo7UIColor">bgColor</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
<div class="pointer-container"></div>
|
||||
<section class="section">
|
||||
<div class="pointer"></div>
|
||||
<div class="abstract">
|
||||
<p>The color to use for the background of the lists of UIViewcontrollers.</p>
|
||||
|
||||
</div>
|
||||
<div class="declaration">
|
||||
<h4>Declaration</h4>
|
||||
<div class="language">
|
||||
<p class="aside-title">Swift</p>
|
||||
<pre class="highlight"><code><span class="kd">@IBInspectable</span> <span class="kd">public</span> <span class="k">var</span> <span class="nv">bgColor</span><span class="p">:</span> <span class="kt">UIColor</span> <span class="o">=</span> <span class="o">.</span><span class="nf">blackColor</span><span class="p">()</span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</li>
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:vC19NavigationStackDemo15NavigationStack6bgViewGSqCSo6UIView_"></a>
|
||||
<a name="//apple_ref/swift/Property/bgView" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:vC19NavigationStackDemo15NavigationStack6bgViewGSqCSo6UIView_">bgView</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
<div class="pointer-container"></div>
|
||||
<section class="section">
|
||||
<div class="pointer"></div>
|
||||
<div class="abstract">
|
||||
<p>The background UIView of the lists of UIViewcontrollers.</p>
|
||||
|
||||
</div>
|
||||
<div class="declaration">
|
||||
<h4>Declaration</h4>
|
||||
<div class="language">
|
||||
<p class="aside-title">Swift</p>
|
||||
<pre class="highlight"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">bgView</span><span class="p">:</span> <span class="kt">UIView</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</li>
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:vC19NavigationStackDemo15NavigationStack13stackDelegateXwGSqPSo30UINavigationControllerDelegate__"></a>
|
||||
<a name="//apple_ref/swift/Property/stackDelegate" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:vC19NavigationStackDemo15NavigationStack13stackDelegateXwGSqPSo30UINavigationControllerDelegate__">stackDelegate</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
<div class="pointer-container"></div>
|
||||
<section class="section">
|
||||
<div class="pointer"></div>
|
||||
<div class="abstract">
|
||||
<p>The delegate of the navigation controller object. Use this instead delegate.</p>
|
||||
|
||||
</div>
|
||||
<div class="declaration">
|
||||
<h4>Declaration</h4>
|
||||
<div class="language">
|
||||
<p class="aside-title">Swift</p>
|
||||
<pre class="highlight"><code><span class="k">weak</span> <span class="kd">public</span> <span class="k">var</span> <span class="nv">stackDelegate</span><span class="p">:</span> <span class="kt">UINavigationControllerDelegate</span><span class="p">?</span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</li>
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:FC19NavigationStackDemo15NavigationStackcFT5coderCSo7NSCoder_GSqS0__"></a>
|
||||
<a name="//apple_ref/swift/Method/init(coder:)" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:FC19NavigationStackDemo15NavigationStackcFT5coderCSo7NSCoder_GSqS0__">init(coder:)</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
<div class="pointer-container"></div>
|
||||
<section class="section">
|
||||
<div class="pointer"></div>
|
||||
<div class="abstract">
|
||||
<p>The initialized navigation controller object or nil if there was a problem initializing the object.</p>
|
||||
|
||||
</div>
|
||||
<div class="declaration">
|
||||
<h4>Declaration</h4>
|
||||
<div class="language">
|
||||
<p class="aside-title">Swift</p>
|
||||
<pre class="highlight"><code><span class="kd">public</span> <span class="kd">required</span> <span class="nf">init</span><span class="p">?(</span><span class="n">coder</span> <span class="nv">aDecoder</span><span class="p">:</span> <span class="kt">NSCoder</span><span class="p">)</span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<h4>Parameters</h4>
|
||||
<table class="graybox">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
<code>
|
||||
<em>aDecoder</em>
|
||||
</code>
|
||||
</td>
|
||||
<td>
|
||||
<div>
|
||||
<p>aDecoder</p>
|
||||
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div>
|
||||
<h4>Return Value</h4>
|
||||
<p>The initialized navigation controller object or nil if there was a problem initializing the object.</p>
|
||||
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="task-group">
|
||||
<ul>
|
||||
<li class="item">
|
||||
<div>
|
||||
<code>
|
||||
<a name="/s:FC19NavigationStackDemo15NavigationStack15showControllersFT_T_"></a>
|
||||
<a name="//apple_ref/swift/Method/showControllers()" class="dashAnchor"></a>
|
||||
<a class="token" href="#/s:FC19NavigationStackDemo15NavigationStack15showControllersFT_T_">showControllers()</a>
|
||||
</code>
|
||||
</div>
|
||||
<div class="height-container">
|
||||
<div class="pointer-container"></div>
|
||||
<section class="section">
|
||||
<div class="pointer"></div>
|
||||
<div class="abstract">
|
||||
<p>Show list of ViewControllers.</p>
|
||||
|
||||
</div>
|
||||
<div class="declaration">
|
||||
<h4>Declaration</h4>
|
||||
<div class="language">
|
||||
<p class="aside-title">Swift</p>
|
||||
<pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">showControllers</span><span class="p">()</span></code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
<section id="footer">
|
||||
<p>© 2016 <a class="link" href="https://github.com/Ramotion/navigation-stack" target="_blank" rel="external">AlexKalinkin</a>. All rights reserved. (Last updated: 2016-06-10)</p>
|
||||
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.5.0</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
|
||||
</section>
|
||||
</article>
|
||||
</div>
|
||||
</body>
|
||||
</div>
|
||||
</html>
|
||||
@@ -0,0 +1,200 @@
|
||||
/* Credit to https://gist.github.com/wataru420/2048287 */
|
||||
.highlight {
|
||||
/* Comment */
|
||||
/* Error */
|
||||
/* Keyword */
|
||||
/* Operator */
|
||||
/* Comment.Multiline */
|
||||
/* Comment.Preproc */
|
||||
/* Comment.Single */
|
||||
/* Comment.Special */
|
||||
/* Generic.Deleted */
|
||||
/* Generic.Deleted.Specific */
|
||||
/* Generic.Emph */
|
||||
/* Generic.Error */
|
||||
/* Generic.Heading */
|
||||
/* Generic.Inserted */
|
||||
/* Generic.Inserted.Specific */
|
||||
/* Generic.Output */
|
||||
/* Generic.Prompt */
|
||||
/* Generic.Strong */
|
||||
/* Generic.Subheading */
|
||||
/* Generic.Traceback */
|
||||
/* Keyword.Constant */
|
||||
/* Keyword.Declaration */
|
||||
/* Keyword.Pseudo */
|
||||
/* Keyword.Reserved */
|
||||
/* Keyword.Type */
|
||||
/* Literal.Number */
|
||||
/* Literal.String */
|
||||
/* Name.Attribute */
|
||||
/* Name.Builtin */
|
||||
/* Name.Class */
|
||||
/* Name.Constant */
|
||||
/* Name.Entity */
|
||||
/* Name.Exception */
|
||||
/* Name.Function */
|
||||
/* Name.Namespace */
|
||||
/* Name.Tag */
|
||||
/* Name.Variable */
|
||||
/* Operator.Word */
|
||||
/* Text.Whitespace */
|
||||
/* Literal.Number.Float */
|
||||
/* Literal.Number.Hex */
|
||||
/* Literal.Number.Integer */
|
||||
/* Literal.Number.Oct */
|
||||
/* Literal.String.Backtick */
|
||||
/* Literal.String.Char */
|
||||
/* Literal.String.Doc */
|
||||
/* Literal.String.Double */
|
||||
/* Literal.String.Escape */
|
||||
/* Literal.String.Heredoc */
|
||||
/* Literal.String.Interpol */
|
||||
/* Literal.String.Other */
|
||||
/* Literal.String.Regex */
|
||||
/* Literal.String.Single */
|
||||
/* Literal.String.Symbol */
|
||||
/* Name.Builtin.Pseudo */
|
||||
/* Name.Variable.Class */
|
||||
/* Name.Variable.Global */
|
||||
/* Name.Variable.Instance */
|
||||
/* Literal.Number.Integer.Long */ }
|
||||
.highlight .c {
|
||||
color: #999988;
|
||||
font-style: italic; }
|
||||
.highlight .err {
|
||||
color: #a61717;
|
||||
background-color: #e3d2d2; }
|
||||
.highlight .k {
|
||||
color: #000000;
|
||||
font-weight: bold; }
|
||||
.highlight .o {
|
||||
color: #000000;
|
||||
font-weight: bold; }
|
||||
.highlight .cm {
|
||||
color: #999988;
|
||||
font-style: italic; }
|
||||
.highlight .cp {
|
||||
color: #999999;
|
||||
font-weight: bold; }
|
||||
.highlight .c1 {
|
||||
color: #999988;
|
||||
font-style: italic; }
|
||||
.highlight .cs {
|
||||
color: #999999;
|
||||
font-weight: bold;
|
||||
font-style: italic; }
|
||||
.highlight .gd {
|
||||
color: #000000;
|
||||
background-color: #ffdddd; }
|
||||
.highlight .gd .x {
|
||||
color: #000000;
|
||||
background-color: #ffaaaa; }
|
||||
.highlight .ge {
|
||||
color: #000000;
|
||||
font-style: italic; }
|
||||
.highlight .gr {
|
||||
color: #aa0000; }
|
||||
.highlight .gh {
|
||||
color: #999999; }
|
||||
.highlight .gi {
|
||||
color: #000000;
|
||||
background-color: #ddffdd; }
|
||||
.highlight .gi .x {
|
||||
color: #000000;
|
||||
background-color: #aaffaa; }
|
||||
.highlight .go {
|
||||
color: #888888; }
|
||||
.highlight .gp {
|
||||
color: #555555; }
|
||||
.highlight .gs {
|
||||
font-weight: bold; }
|
||||
.highlight .gu {
|
||||
color: #aaaaaa; }
|
||||
.highlight .gt {
|
||||
color: #aa0000; }
|
||||
.highlight .kc {
|
||||
color: #000000;
|
||||
font-weight: bold; }
|
||||
.highlight .kd {
|
||||
color: #000000;
|
||||
font-weight: bold; }
|
||||
.highlight .kp {
|
||||
color: #000000;
|
||||
font-weight: bold; }
|
||||
.highlight .kr {
|
||||
color: #000000;
|
||||
font-weight: bold; }
|
||||
.highlight .kt {
|
||||
color: #445588; }
|
||||
.highlight .m {
|
||||
color: #009999; }
|
||||
.highlight .s {
|
||||
color: #d14; }
|
||||
.highlight .na {
|
||||
color: #008080; }
|
||||
.highlight .nb {
|
||||
color: #0086B3; }
|
||||
.highlight .nc {
|
||||
color: #445588;
|
||||
font-weight: bold; }
|
||||
.highlight .no {
|
||||
color: #008080; }
|
||||
.highlight .ni {
|
||||
color: #800080; }
|
||||
.highlight .ne {
|
||||
color: #990000;
|
||||
font-weight: bold; }
|
||||
.highlight .nf {
|
||||
color: #990000; }
|
||||
.highlight .nn {
|
||||
color: #555555; }
|
||||
.highlight .nt {
|
||||
color: #000080; }
|
||||
.highlight .nv {
|
||||
color: #008080; }
|
||||
.highlight .ow {
|
||||
color: #000000;
|
||||
font-weight: bold; }
|
||||
.highlight .w {
|
||||
color: #bbbbbb; }
|
||||
.highlight .mf {
|
||||
color: #009999; }
|
||||
.highlight .mh {
|
||||
color: #009999; }
|
||||
.highlight .mi {
|
||||
color: #009999; }
|
||||
.highlight .mo {
|
||||
color: #009999; }
|
||||
.highlight .sb {
|
||||
color: #d14; }
|
||||
.highlight .sc {
|
||||
color: #d14; }
|
||||
.highlight .sd {
|
||||
color: #d14; }
|
||||
.highlight .s2 {
|
||||
color: #d14; }
|
||||
.highlight .se {
|
||||
color: #d14; }
|
||||
.highlight .sh {
|
||||
color: #d14; }
|
||||
.highlight .si {
|
||||
color: #d14; }
|
||||
.highlight .sx {
|
||||
color: #d14; }
|
||||
.highlight .sr {
|
||||
color: #009926; }
|
||||
.highlight .s1 {
|
||||
color: #d14; }
|
||||
.highlight .ss {
|
||||
color: #990073; }
|
||||
.highlight .bp {
|
||||
color: #999999; }
|
||||
.highlight .vc {
|
||||
color: #008080; }
|
||||
.highlight .vg {
|
||||
color: #008080; }
|
||||
.highlight .vi {
|
||||
color: #008080; }
|
||||
.highlight .il {
|
||||
color: #009999; }
|
||||
@@ -0,0 +1,331 @@
|
||||
html, body, div, span, h1, h3, h4, p, a, code, em, img, ul, li, table, tbody, tr, td {
|
||||
background: transparent;
|
||||
border: 0;
|
||||
margin: 0;
|
||||
outline: 0;
|
||||
padding: 0;
|
||||
vertical-align: baseline; }
|
||||
|
||||
body {
|
||||
background-color: #f2f2f2;
|
||||
font-family: Helvetica, freesans, Arial, sans-serif;
|
||||
font-size: 14px;
|
||||
-webkit-font-smoothing: subpixel-antialiased;
|
||||
word-wrap: break-word; }
|
||||
|
||||
h1, h2, h3 {
|
||||
margin-top: 0.8em;
|
||||
margin-bottom: 0.3em;
|
||||
font-weight: 100;
|
||||
color: black; }
|
||||
|
||||
h1 {
|
||||
font-size: 2.5em; }
|
||||
|
||||
h2 {
|
||||
font-size: 2em;
|
||||
border-bottom: 1px solid #e2e2e2; }
|
||||
|
||||
h4 {
|
||||
font-size: 13px;
|
||||
line-height: 1.5;
|
||||
margin-top: 21px; }
|
||||
|
||||
h5 {
|
||||
font-size: 1.1em; }
|
||||
|
||||
h6 {
|
||||
font-size: 1.1em;
|
||||
color: #777; }
|
||||
|
||||
.section-name {
|
||||
color: gray;
|
||||
display: block;
|
||||
font-family: Helvetica;
|
||||
font-size: 22px;
|
||||
font-weight: 100;
|
||||
margin-bottom: 15px; }
|
||||
|
||||
pre, code {
|
||||
font: 0.95em Menlo, monospace;
|
||||
color: #777;
|
||||
word-wrap: normal; }
|
||||
|
||||
p code, li code {
|
||||
background-color: #eee;
|
||||
padding: 2px 4px;
|
||||
border-radius: 4px; }
|
||||
|
||||
a {
|
||||
color: #0088cc;
|
||||
text-decoration: none; }
|
||||
|
||||
ul {
|
||||
padding-left: 15px; }
|
||||
|
||||
li {
|
||||
line-height: 1.8em; }
|
||||
|
||||
img {
|
||||
max-width: 100%; }
|
||||
|
||||
blockquote {
|
||||
margin-left: 0;
|
||||
padding: 0 10px;
|
||||
border-left: 4px solid #ccc; }
|
||||
|
||||
.content-wrapper {
|
||||
margin: 0 auto;
|
||||
width: 980px; }
|
||||
|
||||
header {
|
||||
font-size: 0.85em;
|
||||
line-height: 26px;
|
||||
background-color: #414141;
|
||||
position: fixed;
|
||||
width: 100%;
|
||||
z-index: 1; }
|
||||
header img {
|
||||
padding-right: 6px;
|
||||
vertical-align: -4px;
|
||||
height: 16px; }
|
||||
header a {
|
||||
color: #fff; }
|
||||
header p {
|
||||
float: left;
|
||||
color: #999; }
|
||||
header .header-right {
|
||||
float: right;
|
||||
margin-left: 16px; }
|
||||
|
||||
#breadcrumbs {
|
||||
background-color: #f2f2f2;
|
||||
height: 27px;
|
||||
padding-top: 17px;
|
||||
position: fixed;
|
||||
width: 100%;
|
||||
z-index: 1;
|
||||
margin-top: 26px; }
|
||||
#breadcrumbs #carat {
|
||||
height: 10px;
|
||||
margin: 0 5px; }
|
||||
|
||||
.sidebar {
|
||||
background-color: #f9f9f9;
|
||||
border: 1px solid #e2e2e2;
|
||||
overflow-y: auto;
|
||||
overflow-x: hidden;
|
||||
position: fixed;
|
||||
top: 70px;
|
||||
bottom: 0;
|
||||
width: 230px;
|
||||
word-wrap: normal; }
|
||||
|
||||
.nav-groups {
|
||||
list-style-type: none;
|
||||
background: #fff;
|
||||
padding-left: 0; }
|
||||
|
||||
.nav-group-name {
|
||||
border-bottom: 1px solid #e2e2e2;
|
||||
font-size: 1.1em;
|
||||
font-weight: 100;
|
||||
padding: 15px 0 15px 20px; }
|
||||
.nav-group-name > a {
|
||||
color: #333; }
|
||||
|
||||
.nav-group-tasks {
|
||||
margin-top: 5px; }
|
||||
|
||||
.nav-group-task {
|
||||
font-size: 0.9em;
|
||||
list-style-type: none; }
|
||||
.nav-group-task a {
|
||||
color: #888; }
|
||||
|
||||
.main-content {
|
||||
background-color: #fff;
|
||||
border: 1px solid #e2e2e2;
|
||||
margin-left: 246px;
|
||||
position: absolute;
|
||||
overflow: hidden;
|
||||
padding-bottom: 60px;
|
||||
top: 70px;
|
||||
width: 734px; }
|
||||
.main-content p, .main-content a, .main-content code, .main-content em, .main-content ul, .main-content table, .main-content blockquote {
|
||||
margin-bottom: 1em; }
|
||||
.main-content p {
|
||||
line-height: 1.8em; }
|
||||
.main-content section .section:first-child {
|
||||
margin-top: 0;
|
||||
padding-top: 0; }
|
||||
.main-content section .task-group-section .task-group:first-of-type {
|
||||
padding-top: 10px; }
|
||||
.main-content section .task-group-section .task-group:first-of-type .section-name {
|
||||
padding-top: 15px; }
|
||||
|
||||
.section {
|
||||
padding: 0 25px; }
|
||||
|
||||
.highlight {
|
||||
background-color: #eee;
|
||||
padding: 10px 12px;
|
||||
border: 1px solid #e2e2e2;
|
||||
border-radius: 4px;
|
||||
overflow-x: auto; }
|
||||
|
||||
.declaration .highlight {
|
||||
overflow-x: initial;
|
||||
padding: 0 40px 40px 0;
|
||||
margin-bottom: -25px;
|
||||
background-color: transparent;
|
||||
border: none; }
|
||||
|
||||
.section-name {
|
||||
margin: 0;
|
||||
margin-left: 18px; }
|
||||
|
||||
.task-group-section {
|
||||
padding-left: 6px;
|
||||
border-top: 1px solid #e2e2e2; }
|
||||
|
||||
.task-group {
|
||||
padding-top: 0px; }
|
||||
|
||||
.task-name-container a[name]:before {
|
||||
content: "";
|
||||
display: block;
|
||||
padding-top: 70px;
|
||||
margin: -70px 0 0; }
|
||||
|
||||
.item {
|
||||
padding-top: 8px;
|
||||
width: 100%;
|
||||
list-style-type: none; }
|
||||
.item a[name]:before {
|
||||
content: "";
|
||||
display: block;
|
||||
padding-top: 70px;
|
||||
margin: -70px 0 0; }
|
||||
.item code {
|
||||
background-color: transparent;
|
||||
padding: 0; }
|
||||
.item .token {
|
||||
padding-left: 3px;
|
||||
margin-left: 15px;
|
||||
font-size: 11.9px; }
|
||||
.item .declaration-note {
|
||||
font-size: .85em;
|
||||
color: gray;
|
||||
font-style: italic; }
|
||||
|
||||
.pointer-container {
|
||||
border-bottom: 1px solid #e2e2e2;
|
||||
left: -23px;
|
||||
padding-bottom: 13px;
|
||||
position: relative;
|
||||
width: 110%; }
|
||||
|
||||
.pointer {
|
||||
background: #f9f9f9;
|
||||
border-left: 1px solid #e2e2e2;
|
||||
border-top: 1px solid #e2e2e2;
|
||||
height: 12px;
|
||||
left: 21px;
|
||||
top: -7px;
|
||||
-webkit-transform: rotate(45deg);
|
||||
-moz-transform: rotate(45deg);
|
||||
-o-transform: rotate(45deg);
|
||||
transform: rotate(45deg);
|
||||
position: absolute;
|
||||
width: 12px; }
|
||||
|
||||
.height-container {
|
||||
display: none;
|
||||
left: -25px;
|
||||
padding: 0 25px;
|
||||
position: relative;
|
||||
width: 100%;
|
||||
overflow: hidden; }
|
||||
.height-container .section {
|
||||
background: #f9f9f9;
|
||||
border-bottom: 1px solid #e2e2e2;
|
||||
left: -25px;
|
||||
position: relative;
|
||||
width: 100%;
|
||||
padding-top: 10px;
|
||||
padding-bottom: 5px; }
|
||||
|
||||
.aside, .language {
|
||||
padding: 6px 12px;
|
||||
margin: 12px 0;
|
||||
border-left: 5px solid #dddddd;
|
||||
overflow-y: hidden; }
|
||||
.aside .aside-title, .language .aside-title {
|
||||
font-size: 9px;
|
||||
letter-spacing: 2px;
|
||||
text-transform: uppercase;
|
||||
padding-bottom: 0;
|
||||
margin: 0;
|
||||
color: #aaa;
|
||||
-webkit-user-select: none; }
|
||||
.aside p:last-child, .language p:last-child {
|
||||
margin-bottom: 0; }
|
||||
|
||||
.language {
|
||||
border-left: 5px solid #cde9f4; }
|
||||
.language .aside-title {
|
||||
color: #4b8afb; }
|
||||
|
||||
.aside-warning {
|
||||
border-left: 5px solid #ff6666; }
|
||||
.aside-warning .aside-title {
|
||||
color: #ff0000; }
|
||||
|
||||
.graybox {
|
||||
border-collapse: collapse;
|
||||
width: 100%; }
|
||||
.graybox p {
|
||||
margin: 0;
|
||||
word-break: break-word;
|
||||
min-width: 50px; }
|
||||
.graybox td {
|
||||
border: 1px solid #e2e2e2;
|
||||
padding: 5px 25px 5px 10px;
|
||||
vertical-align: middle; }
|
||||
.graybox tr td:first-of-type {
|
||||
text-align: right;
|
||||
padding: 7px;
|
||||
vertical-align: top;
|
||||
word-break: normal;
|
||||
width: 40px; }
|
||||
|
||||
.slightly-smaller {
|
||||
font-size: 0.9em; }
|
||||
|
||||
#footer {
|
||||
position: absolute;
|
||||
bottom: 10px;
|
||||
margin-left: 25px; }
|
||||
#footer p {
|
||||
margin: 0;
|
||||
color: #aaa;
|
||||
font-size: 0.8em; }
|
||||
|
||||
html.dash header, html.dash #breadcrumbs, html.dash .sidebar {
|
||||
display: none; }
|
||||
html.dash .main-content {
|
||||
width: 980px;
|
||||
margin-left: 0;
|
||||
border: none;
|
||||
width: 100%;
|
||||
top: 0;
|
||||
padding-bottom: 0; }
|
||||
html.dash .height-container {
|
||||
display: block; }
|
||||
html.dash .item .token {
|
||||
margin-left: 0; }
|
||||
html.dash .content-wrapper {
|
||||
width: auto; }
|
||||
html.dash #footer {
|
||||
position: static; }
|
||||
|
After Width: | Height: | Size: 274 B |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 1.5 KiB |
@@ -0,0 +1,124 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<title>NavigationStackDemo Reference</title>
|
||||
<link rel="stylesheet" type="text/css" href="css/jazzy.css" />
|
||||
<link rel="stylesheet" type="text/css" href="css/highlight.css" />
|
||||
<meta charset='utf-8'>
|
||||
<script src="js/jquery.min.js" defer></script>
|
||||
<script src="js/jazzy.js" defer></script>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<a title="NavigationStackDemo Reference"></a>
|
||||
<header>
|
||||
<div class="content-wrapper">
|
||||
<p><a href="index.html">NavigationStackDemo Docs</a> (69% documented)</p>
|
||||
</div>
|
||||
</header>
|
||||
<div class="content-wrapper">
|
||||
<p id="breadcrumbs">
|
||||
<a href="index.html">NavigationStackDemo Reference</a>
|
||||
<img id="carat" src="img/carat.png" />
|
||||
NavigationStackDemo Reference
|
||||
</p>
|
||||
</div>
|
||||
<div class="content-wrapper">
|
||||
<nav class="sidebar">
|
||||
<ul class="nav-groups">
|
||||
<li class="nav-group-name">
|
||||
<a href="Classes.html">Classes</a>
|
||||
<ul class="nav-group-tasks">
|
||||
<li class="nav-group-task">
|
||||
<a href="Classes/NavigationStack.html">NavigationStack</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
<article class="main-content">
|
||||
<section>
|
||||
<section class="section">
|
||||
|
||||
<p><img src="https://raw.githubusercontent.com/Ramotion/navigation-stack/master/header.png" alt="header"></p>
|
||||
<a href='#navigation_stack' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h1 id='navigation_stack'>navigation-stack</h1>
|
||||
|
||||
<p><a href="http://twitter.com/Ramotion"><img src="https://img.shields.io/badge/Twitter-@Ramotion-blue.svg?style=flat" alt="Twitter"></a>
|
||||
<a href="https://cocoapods.org/pods/Navigation-stack"><img src="https://img.shields.io/cocoapods/p/Navigation-stack.svg" alt="CocoaPods"></a>
|
||||
<a href="http://cocoapods.org/pods/Navigation-stack"><img src="https://img.shields.io/cocoapods/v/Navigation-stack.svg" alt="CocoaPods"></a>
|
||||
<a href="https://cdn.rawgit.com/Ramotion/navigation-stack/master/docs/index.html"><img src="https://img.shields.io/cocoapods/metrics/doc-percent/Navigation-stack.svg" alt="CocoaPods"></a>
|
||||
<a href="https://travis-ci.org/Ramotion/navigation-stack"><img src="https://img.shields.io/travis/Ramotion/navigation-stack.svg" alt="Travis"></a>
|
||||
<a href="https://codebeat.co/projects/github-com-ramotion-navigation-stack"><img src="https://codebeat.co/badges/c322a039-b06b-46d9-bf40-e48cf0365b97" alt="codebeat badge"></a>
|
||||
<a href="https://github.com/Ramotion/navigation-stack"><img src="https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat" alt="Carthage compatible"></a></p>
|
||||
|
||||
<p><a href="https://dribbble.com/shots/2583175-Navigation-Stack-Swift-Open-Source">shot on dribbble</a>:
|
||||
<img src="https://raw.githubusercontent.com/Ramotion/navigation-stack/master/Navigation-Stack.gif" alt="Animation"></p>
|
||||
|
||||
<p>The <a href="https://store.ramotion.com/product/iphone-6-mockups?utm_source=gthb&utm_medium=special&utm_campaign=navigation-stack">iPhone mockup</a> available <a href="https://store.ramotion.com/product/iphone-6-mockups?utm_source=gthb&utm_medium=special&utm_campaign=navigation-stack">here</a>.</p>
|
||||
<a href='#requirements' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h2 id='requirements'>Requirements</h2>
|
||||
|
||||
<ul>
|
||||
<li>iOS 9.0+</li>
|
||||
<li>Xcode 7.3</li>
|
||||
</ul>
|
||||
<a href='#installation' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h2 id='installation'>Installation</h2>
|
||||
|
||||
<p>Just add the Source folder to your project.</p>
|
||||
|
||||
<p>or use <a href="https://cocoapods.org">CocoaPods</a> with Podfile:
|
||||
<code>ruby
|
||||
pod 'Navigation-stack'
|
||||
</code></p>
|
||||
|
||||
<p>or <a href="https://github.com/Carthage/Carthage">Carthage</a> users can simply add to their <code>Cartfile</code>:
|
||||
<code>
|
||||
github "Ramotion/navigation-stack"
|
||||
</code></p>
|
||||
<a href='#usage' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h2 id='usage'>Usage</h2>
|
||||
|
||||
<p>1) YourNavigationController inherit from <code>NavigationStack</code></p>
|
||||
|
||||
<p>2) add code to root viewViewController</p>
|
||||
<pre class="highlight swift"><code><span class="k">override</span> <span class="kd">func</span> <span class="nf">viewDidLoad</span><span class="p">()</span> <span class="p">{</span>
|
||||
<span class="k">super</span><span class="o">.</span><span class="nf">viewDidLoad</span><span class="p">()</span>
|
||||
<span class="n">navigationController</span><span class="o">!.</span><span class="n">interactivePopGestureRecognizer</span><span class="p">?</span><span class="o">.</span><span class="n">delegate</span> <span class="o">=</span> <span class="k">self</span>
|
||||
<span class="p">}</span>
|
||||
</code></pre>
|
||||
<pre class="highlight swift"><code><span class="kd">extension</span> <span class="kt">YourViewController</span><span class="p">:</span> <span class="kt">UIGestureRecognizerDelegate</span> <span class="p">{</span>
|
||||
<span class="kd">func</span> <span class="nf">gestureRecognizerShouldBegin</span><span class="p">(</span><span class="nv">gestureRecognizer</span><span class="p">:</span> <span class="kt">UIGestureRecognizer</span><span class="p">)</span> <span class="o">-></span> <span class="kt">Bool</span> <span class="p">{</span>
|
||||
|
||||
<span class="k">if</span> <span class="n">navigationController</span><span class="p">?</span><span class="o">.</span><span class="n">viewControllers</span><span class="o">.</span><span class="n">count</span> <span class="o">==</span> <span class="mi">2</span> <span class="p">{</span>
|
||||
<span class="k">return</span> <span class="kc">true</span>
|
||||
<span class="p">}</span>
|
||||
|
||||
<span class="k">if</span> <span class="k">let</span> <span class="nv">navigationController</span> <span class="o">=</span> <span class="k">self</span><span class="o">.</span><span class="n">navigationController</span> <span class="k">as?</span> <span class="kt">NavigationStack</span> <span class="p">{</span>
|
||||
<span class="n">navigationController</span><span class="o">.</span><span class="nf">showControllers</span><span class="p">()</span>
|
||||
<span class="p">}</span>
|
||||
|
||||
<span class="k">return</span> <span class="kc">false</span>
|
||||
<span class="p">}</span>
|
||||
<span class="p">}</span>
|
||||
</code></pre>
|
||||
<a href='#licence' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h2 id='licence'>Licence</h2>
|
||||
|
||||
<p>Navigation-stack is released under the MIT license.
|
||||
See <a href="./LICENSE">LICENSE</a> for details.</p>
|
||||
<a href='#about' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h2 id='about'>About</h2>
|
||||
|
||||
<p>The project maintained by <a href="https://ramotion.com?utm_source=gthb&utm_medium=special&utm_campaign=navigation-stack">app development agency</a> <a href="https://ramotion.com?utm_source=gthb&utm_medium=special&utm_campaign=navigation-stack">Ramotion Inc.</a>
|
||||
See our other <a href="https://github.com/ramotion">open-source projects</a> or <a href="https://ramotion.com?utm_source=gthb&utm_medium=special&utm_campaign=navigation-stack">hire</a> us to design, develop, and grow your product.</p>
|
||||
|
||||
<p><a href="https://twitter.com/intent/tweet?text=https://github.com/ramotion/navigation-stack"><img src="https://img.shields.io/twitter/url/http/shields.io.svg?style=social" alt="Twitter URL"></a>
|
||||
<a href="https://twitter.com/ramotion"><img src="https://img.shields.io/twitter/follow/ramotion.svg?style=social" alt="Twitter Follow"></a></p>
|
||||
|
||||
</section>
|
||||
</section>
|
||||
<section id="footer">
|
||||
<p>© 2016 <a class="link" href="https://github.com/Ramotion/navigation-stack" target="_blank" rel="external">AlexKalinkin</a>. All rights reserved. (Last updated: 2016-06-10)</p>
|
||||
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.5.0</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
|
||||
</section>
|
||||
</article>
|
||||
</div>
|
||||
</body>
|
||||
</div>
|
||||
</html>
|
||||
@@ -0,0 +1,40 @@
|
||||
window.jazzy = {'docset': false}
|
||||
if (typeof window.dash != 'undefined') {
|
||||
document.documentElement.className += ' dash'
|
||||
window.jazzy.docset = true
|
||||
}
|
||||
if (navigator.userAgent.match(/xcode/i)) {
|
||||
document.documentElement.className += ' xcode'
|
||||
window.jazzy.docset = true
|
||||
}
|
||||
|
||||
// On doc load, toggle the URL hash discussion if present
|
||||
$(document).ready(function() {
|
||||
if (!window.jazzy.docset) {
|
||||
var linkToHash = $('a[href="' + window.location.hash +'"]');
|
||||
linkToHash.trigger("click");
|
||||
}
|
||||
});
|
||||
|
||||
// On token click, toggle its discussion and animate token.marginLeft
|
||||
$(".token").click(function(event) {
|
||||
if (window.jazzy.docset) {
|
||||
return;
|
||||
}
|
||||
var link = $(this);
|
||||
var animationDuration = 300;
|
||||
var tokenOffset = "15px";
|
||||
var original = link.css('marginLeft') == tokenOffset;
|
||||
link.animate({'margin-left':original ? "0px" : tokenOffset}, animationDuration);
|
||||
$content = link.parent().parent().next();
|
||||
$content.slideToggle(animationDuration);
|
||||
|
||||
// Keeps the document from jumping to the hash.
|
||||
var href = $(this).attr('href');
|
||||
if (history.pushState) {
|
||||
history.pushState({}, '', href);
|
||||
} else {
|
||||
location.hash = href;
|
||||
}
|
||||
event.preventDefault();
|
||||
});
|
||||
@@ -0,0 +1,7 @@
|
||||
NavigationStack.swift
|
||||
public func navigationController(navigationController: UINavigationController,
|
||||
willShowViewController viewController: UIViewController,
|
||||
animated: Bool)
|
||||
public func navigationController(navigationController: UINavigationController, didShowViewController viewController: UIViewController, animated: Bool)
|
||||
public func navigationController(navigationController: UINavigationController, interactionControllerForAnimationController animationController: UIViewControllerAnimatedTransitioning) -> UIViewControllerInteractiveTransitioning?
|
||||
public func navigationController(navigationController: UINavigationController, animationControllerForOperation operation: UINavigationControllerOperation, fromViewController fromVC: UIViewController, toViewController toVC: UIViewController) -> UIViewControllerAnimatedTransitioning?
|
||||
|
After Width: | Height: | Size: 274 B |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 1.5 KiB |
@@ -0,0 +1,124 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<title>NavigationStackDemo Reference</title>
|
||||
<link rel="stylesheet" type="text/css" href="css/jazzy.css" />
|
||||
<link rel="stylesheet" type="text/css" href="css/highlight.css" />
|
||||
<meta charset='utf-8'>
|
||||
<script src="js/jquery.min.js" defer></script>
|
||||
<script src="js/jazzy.js" defer></script>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<a title="NavigationStackDemo Reference"></a>
|
||||
<header>
|
||||
<div class="content-wrapper">
|
||||
<p><a href="index.html">NavigationStackDemo Docs</a> (69% documented)</p>
|
||||
</div>
|
||||
</header>
|
||||
<div class="content-wrapper">
|
||||
<p id="breadcrumbs">
|
||||
<a href="index.html">NavigationStackDemo Reference</a>
|
||||
<img id="carat" src="img/carat.png" />
|
||||
NavigationStackDemo Reference
|
||||
</p>
|
||||
</div>
|
||||
<div class="content-wrapper">
|
||||
<nav class="sidebar">
|
||||
<ul class="nav-groups">
|
||||
<li class="nav-group-name">
|
||||
<a href="Classes.html">Classes</a>
|
||||
<ul class="nav-group-tasks">
|
||||
<li class="nav-group-task">
|
||||
<a href="Classes/NavigationStack.html">NavigationStack</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
<article class="main-content">
|
||||
<section>
|
||||
<section class="section">
|
||||
|
||||
<p><img src="https://raw.githubusercontent.com/Ramotion/navigation-stack/master/header.png" alt="header"></p>
|
||||
<a href='#navigation_stack' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h1 id='navigation_stack'>navigation-stack</h1>
|
||||
|
||||
<p><a href="http://twitter.com/Ramotion"><img src="https://img.shields.io/badge/Twitter-@Ramotion-blue.svg?style=flat" alt="Twitter"></a>
|
||||
<a href="https://cocoapods.org/pods/Navigation-stack"><img src="https://img.shields.io/cocoapods/p/Navigation-stack.svg" alt="CocoaPods"></a>
|
||||
<a href="http://cocoapods.org/pods/Navigation-stack"><img src="https://img.shields.io/cocoapods/v/Navigation-stack.svg" alt="CocoaPods"></a>
|
||||
<a href="https://cdn.combinatronics.com/Ramotion/navigation-stack/master/docs/index.html"><img src="https://img.shields.io/cocoapods/metrics/doc-percent/Navigation-stack.svg" alt="CocoaPods"></a>
|
||||
<a href="https://travis-ci.org/Ramotion/navigation-stack"><img src="https://img.shields.io/travis/Ramotion/navigation-stack.svg" alt="Travis"></a>
|
||||
<a href="https://codebeat.co/projects/github-com-ramotion-navigation-stack"><img src="https://codebeat.co/badges/c322a039-b06b-46d9-bf40-e48cf0365b97" alt="codebeat badge"></a>
|
||||
<a href="https://github.com/Ramotion/navigation-stack"><img src="https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat" alt="Carthage compatible"></a></p>
|
||||
|
||||
<p><a href="https://dribbble.com/shots/2583175-Navigation-Stack-Swift-Open-Source">shot on dribbble</a>:
|
||||
<img src="https://raw.githubusercontent.com/Ramotion/navigation-stack/master/Navigation-Stack.gif" alt="Animation"></p>
|
||||
|
||||
<p>The <a href="https://store.ramotion.com/product/iphone-6-mockups?utm_source=gthb&utm_medium=special&utm_campaign=navigation-stack">iPhone mockup</a> available <a href="https://store.ramotion.com/product/iphone-6-mockups?utm_source=gthb&utm_medium=special&utm_campaign=navigation-stack">here</a>.</p>
|
||||
<a href='#requirements' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h2 id='requirements'>Requirements</h2>
|
||||
|
||||
<ul>
|
||||
<li>iOS 9.0+</li>
|
||||
<li>Xcode 7.3</li>
|
||||
</ul>
|
||||
<a href='#installation' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h2 id='installation'>Installation</h2>
|
||||
|
||||
<p>Just add the Source folder to your project.</p>
|
||||
|
||||
<p>or use <a href="https://cocoapods.org">CocoaPods</a> with Podfile:
|
||||
<code>ruby
|
||||
pod 'Navigation-stack'
|
||||
</code></p>
|
||||
|
||||
<p>or <a href="https://github.com/Carthage/Carthage">Carthage</a> users can simply add to their <code>Cartfile</code>:
|
||||
<code>
|
||||
github "Ramotion/navigation-stack"
|
||||
</code></p>
|
||||
<a href='#usage' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h2 id='usage'>Usage</h2>
|
||||
|
||||
<p>1) YourNavigationController inherit from <code>NavigationStack</code></p>
|
||||
|
||||
<p>2) add code to root viewViewController</p>
|
||||
<pre class="highlight swift"><code><span class="k">override</span> <span class="kd">func</span> <span class="nf">viewDidLoad</span><span class="p">()</span> <span class="p">{</span>
|
||||
<span class="k">super</span><span class="o">.</span><span class="nf">viewDidLoad</span><span class="p">()</span>
|
||||
<span class="n">navigationController</span><span class="o">!.</span><span class="n">interactivePopGestureRecognizer</span><span class="p">?</span><span class="o">.</span><span class="n">delegate</span> <span class="o">=</span> <span class="k">self</span>
|
||||
<span class="p">}</span>
|
||||
</code></pre>
|
||||
<pre class="highlight swift"><code><span class="kd">extension</span> <span class="kt">YourViewController</span><span class="p">:</span> <span class="kt">UIGestureRecognizerDelegate</span> <span class="p">{</span>
|
||||
<span class="kd">func</span> <span class="nf">gestureRecognizerShouldBegin</span><span class="p">(</span><span class="nv">gestureRecognizer</span><span class="p">:</span> <span class="kt">UIGestureRecognizer</span><span class="p">)</span> <span class="o">-></span> <span class="kt">Bool</span> <span class="p">{</span>
|
||||
|
||||
<span class="k">if</span> <span class="n">navigationController</span><span class="p">?</span><span class="o">.</span><span class="n">viewControllers</span><span class="o">.</span><span class="n">count</span> <span class="o">==</span> <span class="mi">2</span> <span class="p">{</span>
|
||||
<span class="k">return</span> <span class="kc">true</span>
|
||||
<span class="p">}</span>
|
||||
|
||||
<span class="k">if</span> <span class="k">let</span> <span class="nv">navigationController</span> <span class="o">=</span> <span class="k">self</span><span class="o">.</span><span class="n">navigationController</span> <span class="k">as?</span> <span class="kt">NavigationStack</span> <span class="p">{</span>
|
||||
<span class="n">navigationController</span><span class="o">.</span><span class="nf">showControllers</span><span class="p">()</span>
|
||||
<span class="p">}</span>
|
||||
|
||||
<span class="k">return</span> <span class="kc">false</span>
|
||||
<span class="p">}</span>
|
||||
<span class="p">}</span>
|
||||
</code></pre>
|
||||
<a href='#licence' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h2 id='licence'>Licence</h2>
|
||||
|
||||
<p>Navigation-stack is released under the MIT license.
|
||||
See <a href="./LICENSE">LICENSE</a> for details.</p>
|
||||
<a href='#about' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h2 id='about'>About</h2>
|
||||
|
||||
<p>The project maintained by <a href="https://ramotion.com?utm_source=gthb&utm_medium=special&utm_campaign=navigation-stack">app development agency</a> <a href="https://ramotion.com?utm_source=gthb&utm_medium=special&utm_campaign=navigation-stack">Ramotion Inc.</a>
|
||||
See our other <a href="https://github.com/ramotion">open-source projects</a> or <a href="https://ramotion.com?utm_source=gthb&utm_medium=special&utm_campaign=navigation-stack">hire</a> us to design, develop, and grow your product.</p>
|
||||
|
||||
<p><a href="https://twitter.com/intent/tweet?text=https://github.com/ramotion/navigation-stack"><img src="https://img.shields.io/twitter/url/http/shields.io.svg?style=social" alt="Twitter URL"></a>
|
||||
<a href="https://twitter.com/ramotion"><img src="https://img.shields.io/twitter/follow/ramotion.svg?style=social" alt="Twitter Follow"></a></p>
|
||||
|
||||
</section>
|
||||
</section>
|
||||
<section id="footer">
|
||||
<p>© 2016 <a class="link" href="https://github.com/Ramotion/navigation-stack" target="_blank" rel="external">AlexKalinkin</a>. All rights reserved. (Last updated: 2016-06-10)</p>
|
||||
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.5.0</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
|
||||
</section>
|
||||
</article>
|
||||
</div>
|
||||
</body>
|
||||
</div>
|
||||
</html>
|
||||
@@ -0,0 +1,40 @@
|
||||
window.jazzy = {'docset': false}
|
||||
if (typeof window.dash != 'undefined') {
|
||||
document.documentElement.className += ' dash'
|
||||
window.jazzy.docset = true
|
||||
}
|
||||
if (navigator.userAgent.match(/xcode/i)) {
|
||||
document.documentElement.className += ' xcode'
|
||||
window.jazzy.docset = true
|
||||
}
|
||||
|
||||
// On doc load, toggle the URL hash discussion if present
|
||||
$(document).ready(function() {
|
||||
if (!window.jazzy.docset) {
|
||||
var linkToHash = $('a[href="' + window.location.hash +'"]');
|
||||
linkToHash.trigger("click");
|
||||
}
|
||||
});
|
||||
|
||||
// On token click, toggle its discussion and animate token.marginLeft
|
||||
$(".token").click(function(event) {
|
||||
if (window.jazzy.docset) {
|
||||
return;
|
||||
}
|
||||
var link = $(this);
|
||||
var animationDuration = 300;
|
||||
var tokenOffset = "15px";
|
||||
var original = link.css('marginLeft') == tokenOffset;
|
||||
link.animate({'margin-left':original ? "0px" : tokenOffset}, animationDuration);
|
||||
$content = link.parent().parent().next();
|
||||
$content.slideToggle(animationDuration);
|
||||
|
||||
// Keeps the document from jumping to the hash.
|
||||
var href = $(this).attr('href');
|
||||
if (history.pushState) {
|
||||
history.pushState({}, '', href);
|
||||
} else {
|
||||
location.hash = href;
|
||||
}
|
||||
event.preventDefault();
|
||||
});
|
||||
@@ -0,0 +1,7 @@
|
||||
NavigationStack.swift
|
||||
public func navigationController(navigationController: UINavigationController,
|
||||
willShowViewController viewController: UIViewController,
|
||||
animated: Bool)
|
||||
public func navigationController(navigationController: UINavigationController, didShowViewController viewController: UIViewController, animated: Bool)
|
||||
public func navigationController(navigationController: UINavigationController, interactionControllerForAnimationController animationController: UIViewControllerAnimatedTransitioning) -> UIViewControllerInteractiveTransitioning?
|
||||
public func navigationController(navigationController: UINavigationController, animationControllerForOperation operation: UINavigationControllerOperation, fromViewController fromVC: UIViewController, toViewController toVC: UIViewController) -> UIViewControllerAnimatedTransitioning?
|
||||
|
After Width: | Height: | Size: 11 MiB |