48 Commits

Author SHA1 Message Date
Alex 5238c1c342 Update Navigation-stack.podspec 2016-04-12 10:06:00 +03:00
Alex 8049487784 Merge pull request #3 from AFcgi/develop
Add backgroundView property for background image support
2016-04-12 09:32:46 +03:00
cgi 738e47c739 [ADD] background view property
[FIX] delegate issue
2016-04-11 23:08:56 +02:00
cgi 28d675b1ee [CHANGE] inspectable are public 2016-04-11 08:57:17 +02:00
Alex eba81a42ac Update README.md 2016-03-11 16:53:48 +03:00
Alex.k 7fbb5c1e2d Merge branch 'master' of https://github.com/Ramotion/navigation-stack 2016-03-11 16:47:34 +03:00
Alex.k 580b63452d added contributing file 2016-03-11 16:47:29 +03:00
Alex aa4aa7a6be Update README.md 2016-03-11 16:37:52 +03:00
Alex e2ce8216ac Update README.md 2016-03-11 16:36:36 +03:00
Alex 3d593a2219 Update README.md 2016-03-11 16:32:02 +03:00
Alex.k a42ee4bed4 Merge branch 'master' of https://github.com/Ramotion/navigation-stack 2016-03-11 16:29:39 +03:00
Alex.k e4f1a6612e Changed header 2016-03-11 16:29:34 +03:00
Alex c51ea3abef Update README.md 2016-03-11 16:18:10 +03:00
Alex.k 118dfcbd46 Merge branch 'master' of https://github.com/Ramotion/navigation-stack 2016-03-11 16:12:10 +03:00
Alex.k 0fdbc891c1 added gif 2016-03-11 16:12:02 +03:00
Alex 7220458d20 Update README.md 2016-03-09 10:53:20 +03:00
Alex.k daf8d76b23 update navigation stack 2016-03-05 15:13:40 +03:00
Alex.k 77786eab55 mini fixing 2016-03-05 15:11:14 +03:00
Alex.k 8348afccb3 added search bar 2016-03-05 14:07:42 +03:00
Alex.k 442308745d fixed design bugs 2016-03-05 12:40:16 +03:00
Alex.k 56b308c5bd added design for fifth screen 2016-03-05 11:58:12 +03:00
Alex.k 21c6ac0880 added design for four viewConroller 2016-03-05 11:44:57 +03:00
Alex.k 3e714b625a Third screen design 2016-03-05 11:27:52 +03:00
Alex.k 2be30cd709 added design second screen 2016-03-05 10:39:16 +03:00
Alex.k 6767f63014 added design for first screen 2016-03-04 17:55:29 +03:00
Alex c5c04ee9c7 Update README.md 2016-03-03 11:18:49 +03:00
Alex.k ef9ed5a744 code style improved 2016-03-03 11:11:54 +03:00
Alex.k 14e7484d00 Merge branch 'develop' 2016-03-03 11:01:08 +03:00
Alex.k 17591cee6e code style improved 2016-03-03 11:00:41 +03:00
Alex d3be76bd43 Update README.md 2016-03-02 17:49:18 +03:00
Alex.k 6c62c98bc1 create new scheme 2016-03-02 17:17:03 +03:00
Alex.k 9e320efc12 update travis file 2016-03-02 17:08:34 +03:00
Alex.k d438d82eb5 update travis file 2016-03-02 17:07:08 +03:00
Alex.k 4cc6f2005a remove ui tests 2016-03-02 16:44:09 +03:00
Alex.k 575732700d change developmentTeam 2016-03-02 16:14:51 +03:00
Alex.k 34181c38db update travis file 2016-03-02 15:20:26 +03:00
Alex.k 77b5eb9bc4 remove xcode_sdk: iphonesimulator 2016-03-02 15:14:48 +03:00
Alex.k 7d347a259b improves 2016-03-02 15:07:47 +03:00
Alex.k d8b1b2e6a3 smal improves 2016-03-02 15:00:02 +03:00
Alex.k f8282e596d added files to test 2016-03-02 14:37:45 +03:00
Alex.k 76e53c5509 added files 2016-03-02 14:29:31 +03:00
Alex.k 487feddd74 remove files 2016-03-02 14:27:19 +03:00
Alex.k a804d1d4e9 small fixing 2016-03-02 14:25:13 +03:00
Alex.k 62314e6c29 Merge branch 'master' of https://github.com/Ramotion/navigation-stack 2016-03-02 14:15:55 +03:00
Alex.k 1251dd6660 added travis file
shared scheme
2016-03-02 14:15:49 +03:00
Alex 51b848b939 Update README.md 2016-03-02 12:37:42 +03:00
Alex.k 3da572c9b7 update podspec 2016-03-02 12:27:17 +03:00
Alex.k f3779c3d51 added podspec 2016-03-02 12:15:34 +03:00
83 changed files with 1724 additions and 2182 deletions
+6
View File
@@ -0,0 +1,6 @@
osx_image: xcode7.2
language: objective-c
xcode_project: NavigationStackDemo.xcodeproj
xcode_scheme: NavigationStack
xcode_sdk: iphonesimulator
+33
View File
@@ -0,0 +1,33 @@
# Contributing to a Project
Now that youve found the material for understanding the project, here is how you can take action.
### Create an Issue
If you find a bug in a project youre using (and you dont know how to fix it), have trouble following the documentation or have a question about the project create an issue! Theres nothing to it and whatever issue youre having, youre likely not the only one, so others will find your issue helpful, too. For more information on how issues work, check out our Issues guide.
#### Issues Pro Tips
Check existing issues for your issue. Duplicating an issue is slower for both parties so search through open and closed issues to see if what youre running into has been addressed already.
Be clear about what your problem is: what was the expected outcome, what happened instead? Detail how someone else can recreate the problem.
Link to demos recreating the problem on things like JSFiddle or CodePen.
Include system details like what the browser, library or operating system youre using and its version.
Paste error output or logs in your issue or in a Gist. If pasting them in the issue, wrap it in three backticks: ``` so that it renders nicely.
### Pull Request
If youre able to patch the bug or add the feature yourself fantastic, make a pull request with the code! Be sure youve read any documents on contributing, understand the license and have signed a CLA if required. Once youve submitted a pull request the maintainer(s) can compare your branch to the existing one and decide whether or not to incorporate (pull in) your changes.
#### Pull Request Pro Tips
Fork the repository and clone it locally. Connect your local to the original upstream repository by adding it as a remote. Pull in changes from upstream often so that you stay up to date so that when you submit your pull request, merge conflicts will be less likely. See more detailed instructions here.
Create a branch for your edits.
Be clear about what problem is occurring and how someone can recreate that problem or why your feature will help. Then be equally as clear about the steps you took to make your changes.
Its best to test. Run your changes against any existing tests if they exist and create new ones when needed. Whether tests exist or not, make sure your changes dont break the existing project.
Include screenshots of the before and after if your changes include differences in HTML/CSS. Drag and drop the images into the body of your pull request.
Contribute in the style of the project to the best of your abilities. This may mean using indents, semi colons or comments differently than you would in your own repository, but makes it easier for the maintainer to merge, others to understand and maintain in the future.
#### Open Pull Requests
Once youve opened a pull request a discussion will start around your proposed changes. Other contributors and users may chime in, but ultimately the decision is made by the maintainer(s). You may be asked to make some changes to your pull request, if so, add more commits to your branch and push them theyll automatically go into the existing pull request.
If your pull request is merged great! If it is not, no sweat, it may not be what the project maintainer had in mind, or they were already working on it. This happens, so our recommendation is to take any feedback youve received and go forth and pull request again or create your own open source project.
Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 MiB

+12
View File
@@ -0,0 +1,12 @@
Pod::Spec.new do |s|
s.name = 'Navigation-stack'
s.version = '0.0.3'
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.source = { :git => 'https://github.com/Ramotion/navigation-stack.git', :tag => s.version.to_s }
s.source_files = 'Source/**/*.swift'
s.requires_arc = true
end
+47 -138
View File
@@ -7,24 +7,32 @@
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 */; };
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 */; };
8444B1101C80238500B53B4E /* NavigationStackDemoUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8444B10F1C80238500B53B4E /* NavigationStackDemoUITests.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 */; };
847B0F871C842ED800E2C54D /* FirstTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 847B0F861C842ED800E2C54D /* FirstTableViewController.swift */; };
847B0F881C842ED800E2C54D /* FirstTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 847B0F861C842ED800E2C54D /* FirstTableViewController.swift */; };
847B0F891C842ED800E2C54D /* FirstTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 847B0F861C842ED800E2C54D /* FirstTableViewController.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 */; };
847B0FAB1C846B8C00E2C54D /* FourthViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 847B0FAA1C846B8C00E2C54D /* FourthViewController.swift */; };
847B0FAD1C846B9200E2C54D /* ThirdViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 847B0FAC1C846B9200E2C54D /* ThirdViewController.swift */; };
847B0FAF1C846BD600E2C54D /* TableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 847B0FAE1C846BD600E2C54D /* TableViewCell.swift */; };
847B0FB11C846C6100E2C54D /* SecondViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 847B0FB01C846C6100E2C54D /* SecondViewController.swift */; };
84B820991C8AE00E00939EE7 /* OpenSans-Semibold.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 84B820981C8AE00E00939EE7 /* OpenSans-Semibold.ttf */; };
84E8E5A61C89D2C800A8B640 /* OpenSans-Light.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 84E8E5A51C89D2C800A8B640 /* OpenSans-Light.ttf */; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
@@ -35,16 +43,10 @@
remoteGlobalIDString = 8444B0EB1C80238500B53B4E;
remoteInfo = NavigationStackDemo;
};
8444B10C1C80238500B53B4E /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 8444B0E41C80238500B53B4E /* Project object */;
proxyType = 1;
remoteGlobalIDString = 8444B0EB1C80238500B53B4E;
remoteInfo = NavigationStackDemo;
};
/* End PBXContainerItemProxy 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; };
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>"; };
@@ -54,19 +56,16 @@
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>"; };
8444B10B1C80238500B53B4E /* NavigationStackDemoUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = NavigationStackDemoUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
8444B10F1C80238500B53B4E /* NavigationStackDemoUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NavigationStackDemoUITests.swift; sourceTree = "<group>"; };
8444B1111C80238500B53B4E /* 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>"; };
8444B1261C80250A00B53B4E /* NavigationStack.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NavigationStack.swift; sourceTree = "<group>"; };
847B0F861C842ED800E2C54D /* FirstTableViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = FirstTableViewController.swift; path = ../FirstTableViewController.swift; sourceTree = "<group>"; };
846302881C8ABC340015CD81 /* OpenSans-Regular.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "OpenSans-Regular.ttf"; sourceTree = "<group>"; };
847B0FA81C846B8100E2C54D /* FifthViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FifthViewController.swift; sourceTree = "<group>"; };
847B0FAA1C846B8C00E2C54D /* FourthViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FourthViewController.swift; sourceTree = "<group>"; };
847B0FAC1C846B9200E2C54D /* ThirdViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ThirdViewController.swift; sourceTree = "<group>"; };
847B0FAE1C846BD600E2C54D /* TableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TableViewCell.swift; sourceTree = "<group>"; };
847B0FB01C846C6100E2C54D /* SecondViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SecondViewController.swift; sourceTree = "<group>"; };
84B820981C8AE00E00939EE7 /* OpenSans-Semibold.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "OpenSans-Semibold.ttf"; sourceTree = "<group>"; };
84E8E5A51C89D2C800A8B640 /* OpenSans-Light.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "OpenSans-Light.ttf"; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
@@ -84,13 +83,6 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
8444B1081C80238500B53B4E /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
@@ -99,7 +91,6 @@
children = (
8444B0EE1C80238500B53B4E /* NavigationStackDemo */,
8444B1031C80238500B53B4E /* NavigationStackDemoTests */,
8444B10E1C80238500B53B4E /* NavigationStackDemoUITests */,
8444B0ED1C80238500B53B4E /* Products */,
);
sourceTree = "<group>";
@@ -109,7 +100,6 @@
children = (
8444B0EC1C80238500B53B4E /* NavigationStackDemo.app */,
8444B1001C80238500B53B4E /* NavigationStackDemoTests.xctest */,
8444B10B1C80238500B53B4E /* NavigationStackDemoUITests.xctest */,
);
name = Products;
sourceTree = "<group>";
@@ -137,18 +127,10 @@
path = NavigationStackDemoTests;
sourceTree = "<group>";
};
8444B10E1C80238500B53B4E /* NavigationStackDemoUITests */ = {
isa = PBXGroup;
children = (
8444B10F1C80238500B53B4E /* NavigationStackDemoUITests.swift */,
8444B1111C80238500B53B4E /* Info.plist */,
);
path = NavigationStackDemoUITests;
sourceTree = "<group>";
};
8444B11D1C80247500B53B4E /* Source */ = {
isa = PBXGroup;
children = (
84E8E5A41C89D28C00A8B640 /* Fonts */,
8444B11E1C80250A00B53B4E /* CollectionView */,
8444B1261C80250A00B53B4E /* NavigationStack.swift */,
);
@@ -188,26 +170,15 @@
847B0F8F1C844B4F00E2C54D /* FirstViewController */,
847B0F901C844BBC00E2C54D /* SecondViewController */,
847B0F951C84618300E2C54D /* ThirdViewController */,
847B0F9E1C8464F100E2C54D /* FourthViewController */,
847B0FA31C84690E00E2C54D /* FifthViewController */,
);
path = ViewControllers;
sourceTree = "<group>";
};
847B0F8A1C8430C100E2C54D /* Cells */ = {
isa = PBXGroup;
children = (
847B0FAE1C846BD600E2C54D /* TableViewCell.swift */,
);
name = Cells;
path = ../Cells;
sourceTree = "<group>";
};
847B0F8F1C844B4F00E2C54D /* FirstViewController */ = {
isa = PBXGroup;
children = (
847B0F8A1C8430C100E2C54D /* Cells */,
847B0F861C842ED800E2C54D /* FirstTableViewController.swift */,
840D540F1C8705FA00555605 /* FirstTableViewController.swift */,
);
path = FirstViewController;
sourceTree = "<group>";
@@ -228,14 +199,6 @@
path = ThirdViewController;
sourceTree = "<group>";
};
847B0F9E1C8464F100E2C54D /* FourthViewController */ = {
isa = PBXGroup;
children = (
847B0FAA1C846B8C00E2C54D /* FourthViewController.swift */,
);
path = FourthViewController;
sourceTree = "<group>";
};
847B0FA31C84690E00E2C54D /* FifthViewController */ = {
isa = PBXGroup;
children = (
@@ -244,6 +207,16 @@
path = FifthViewController;
sourceTree = "<group>";
};
84E8E5A41C89D28C00A8B640 /* Fonts */ = {
isa = PBXGroup;
children = (
84B820981C8AE00E00939EE7 /* OpenSans-Semibold.ttf */,
846302881C8ABC340015CD81 /* OpenSans-Regular.ttf */,
84E8E5A51C89D2C800A8B640 /* OpenSans-Light.ttf */,
);
path = Fonts;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
@@ -282,24 +255,6 @@
productReference = 8444B1001C80238500B53B4E /* NavigationStackDemoTests.xctest */;
productType = "com.apple.product-type.bundle.unit-test";
};
8444B10A1C80238500B53B4E /* NavigationStackDemoUITests */ = {
isa = PBXNativeTarget;
buildConfigurationList = 8444B11A1C80238500B53B4E /* Build configuration list for PBXNativeTarget "NavigationStackDemoUITests" */;
buildPhases = (
8444B1071C80238500B53B4E /* Sources */,
8444B1081C80238500B53B4E /* Frameworks */,
8444B1091C80238500B53B4E /* Resources */,
);
buildRules = (
);
dependencies = (
8444B10D1C80238500B53B4E /* PBXTargetDependency */,
);
name = NavigationStackDemoUITests;
productName = NavigationStackDemoUITests;
productReference = 8444B10B1C80238500B53B4E /* NavigationStackDemoUITests.xctest */;
productType = "com.apple.product-type.bundle.ui-testing";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
@@ -312,15 +267,12 @@
TargetAttributes = {
8444B0EB1C80238500B53B4E = {
CreatedOnToolsVersion = 7.2.1;
DevelopmentTeam = 34MUF9YXTA;
};
8444B0FF1C80238500B53B4E = {
CreatedOnToolsVersion = 7.2.1;
TestTargetID = 8444B0EB1C80238500B53B4E;
};
8444B10A1C80238500B53B4E = {
CreatedOnToolsVersion = 7.2.1;
TestTargetID = 8444B0EB1C80238500B53B4E;
};
};
};
buildConfigurationList = 8444B0E71C80238500B53B4E /* Build configuration list for PBXProject "NavigationStackDemo" */;
@@ -338,7 +290,6 @@
targets = (
8444B0EB1C80238500B53B4E /* NavigationStackDemo */,
8444B0FF1C80238500B53B4E /* NavigationStackDemoTests */,
8444B10A1C80238500B53B4E /* NavigationStackDemoUITests */,
);
};
/* End PBXProject section */
@@ -348,8 +299,11 @@
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
84B820991C8AE00E00939EE7 /* OpenSans-Semibold.ttf in Resources */,
846302891C8ABC340015CD81 /* OpenSans-Regular.ttf in Resources */,
8444B0FA1C80238500B53B4E /* LaunchScreen.storyboard in Resources */,
8444B0F71C80238500B53B4E /* Assets.xcassets in Resources */,
84E8E5A61C89D2C800A8B640 /* OpenSans-Light.ttf in Resources */,
8444B0F51C80238500B53B4E /* Main.storyboard in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
@@ -358,13 +312,7 @@
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
8444B1091C80238500B53B4E /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
8479994C1C870EB50050D164 /* Main.storyboard in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -378,10 +326,8 @@
847B0FB11C846C6100E2C54D /* SecondViewController.swift in Sources */,
847B0FA91C846B8100E2C54D /* FifthViewController.swift in Sources */,
8444B1271C80250A00B53B4E /* CollectionViewStackCell.swift in Sources */,
847B0F871C842ED800E2C54D /* FirstTableViewController.swift in Sources */,
847B0FAB1C846B8C00E2C54D /* FourthViewController.swift in Sources */,
8444B1291C80250A00B53B4E /* CollectionStackViewController.swift in Sources */,
847B0FAF1C846BD600E2C54D /* TableViewCell.swift in Sources */,
840D54101C8705FA00555605 /* FirstTableViewController.swift in Sources */,
8444B1281C80250A00B53B4E /* CollectionViewStackFlowLayout.swift in Sources */,
847B0FAD1C846B9200E2C54D /* ThirdViewController.swift in Sources */,
8444B12B1C80250A00B53B4E /* NavigationStack.swift in Sources */,
@@ -393,17 +339,16 @@
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 */,
847B0F881C842ED800E2C54D /* FirstTableViewController.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
8444B1071C80238500B53B4E /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
8444B1101C80238500B53B4E /* NavigationStackDemoUITests.swift in Sources */,
847B0F891C842ED800E2C54D /* FirstTableViewController.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;
};
@@ -415,11 +360,6 @@
target = 8444B0EB1C80238500B53B4E /* NavigationStackDemo */;
targetProxy = 8444B1011C80238500B53B4E /* PBXContainerItemProxy */;
};
8444B10D1C80238500B53B4E /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = 8444B0EB1C80238500B53B4E /* NavigationStackDemo */;
targetProxy = 8444B10C1C80238500B53B4E /* PBXContainerItemProxy */;
};
/* End PBXTargetDependency section */
/* Begin PBXVariantGroup section */
@@ -527,6 +467,7 @@
isa = XCBuildConfiguration;
buildSettings = {
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";
@@ -539,6 +480,7 @@
isa = XCBuildConfiguration;
buildSettings = {
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";
@@ -571,30 +513,6 @@
};
name = Release;
};
8444B11B1C80238500B53B4E /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
INFOPLIST_FILE = NavigationStackDemoUITests/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = com.ramotion.NavigationStackDemoUITests;
PRODUCT_NAME = "$(TARGET_NAME)";
TEST_TARGET_NAME = NavigationStackDemo;
USES_XCTRUNNER = YES;
};
name = Debug;
};
8444B11C1C80238500B53B4E /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
INFOPLIST_FILE = NavigationStackDemoUITests/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = com.ramotion.NavigationStackDemoUITests;
PRODUCT_NAME = "$(TARGET_NAME)";
TEST_TARGET_NAME = NavigationStackDemo;
USES_XCTRUNNER = YES;
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
@@ -625,15 +543,6 @@
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
8444B11A1C80238500B53B4E /* Build configuration list for PBXNativeTarget "NavigationStackDemoUITests" */ = {
isa = XCConfigurationList;
buildConfigurations = (
8444B11B1C80238500B53B4E /* Debug */,
8444B11C1C80238500B53B4E /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
rootObject = 8444B0E41C80238500B53B4E /* Project object */;
@@ -0,0 +1,101 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0720"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "8444B0EB1C80238500B53B4E"
BuildableName = "NavigationStackDemo.app"
BlueprintName = "NavigationStackDemo"
ReferencedContainer = "container:NavigationStackDemo.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
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"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "8444B0EB1C80238500B53B4E"
BuildableName = "NavigationStackDemo.app"
BlueprintName = "NavigationStackDemo"
ReferencedContainer = "container:NavigationStackDemo.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "8444B0EB1C80238500B53B4E"
BuildableName = "NavigationStackDemo.app"
BlueprintName = "NavigationStackDemo"
ReferencedContainer = "container:NavigationStackDemo.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>
+7
View File
@@ -32,6 +32,13 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
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
}
@@ -0,0 +1,24 @@
{
"images" : [
{
"idiom" : "universal"
},
{
"idiom" : "universal",
"filename" : "ButtonBorder.pdf",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
@@ -0,0 +1,6 @@
{
"info" : {
"version" : 1,
"author" : "xcode"
}
}
@@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "Fifth-Icon-0.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

@@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "Fifth-Icon-1.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

@@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "Fifth-Icon-2.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

@@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "Fifth-Icon-3.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

@@ -0,0 +1,6 @@
{
"info" : {
"version" : 1,
"author" : "xcode"
}
}
@@ -0,0 +1,24 @@
{
"images" : [
{
"idiom" : "universal"
},
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "Arrow.pdf",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
@@ -0,0 +1,6 @@
{
"info" : {
"version" : 1,
"author" : "xcode"
}
}
@@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "icon-0.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

@@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "icon-1.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

@@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "icon-2.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

@@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "icon-3.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

@@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "icon-4.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

@@ -0,0 +1,6 @@
{
"info" : {
"version" : 1,
"author" : "xcode"
}
}
@@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "GirlsBig.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 134 KiB

@@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "NYbg.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 614 KiB

@@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "faceIcon.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

@@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "foodIcon.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 544 KiB

@@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "BridgeImage.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
@@ -0,0 +1,6 @@
{
"info" : {
"version" : 1,
"author" : "xcode"
}
}
@@ -0,0 +1,24 @@
{
"images" : [
{
"idiom" : "universal"
},
{
"idiom" : "universal",
"filename" : "DotsIcon.pdf",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
@@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "HeadnImage.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

@@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "PCImage.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

@@ -0,0 +1,24 @@
{
"images" : [
{
"idiom" : "universal"
},
{
"idiom" : "universal",
"filename" : "PersonIcon.pdf",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
@@ -0,0 +1,24 @@
{
"images" : [
{
"idiom" : "universal"
},
{
"idiom" : "universal",
"filename" : "PinIcon.pdf",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
@@ -0,0 +1,24 @@
{
"images" : [
{
"idiom" : "universal"
},
{
"idiom" : "universal",
"filename" : "RamotionBig.pdf",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
@@ -0,0 +1,24 @@
{
"images" : [
{
"idiom" : "universal"
},
{
"idiom" : "universal",
"filename" : "backButton.pdf",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
@@ -0,0 +1,24 @@
{
"images" : [
{
"idiom" : "universal"
},
{
"idiom" : "universal",
"filename" : "BGmessage.pdf",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
@@ -0,0 +1,6 @@
{
"info" : {
"version" : 1,
"author" : "xcode"
}
}
@@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "girsl.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

@@ -1,7 +1,8 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="8150" systemVersion="15A204g" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES" initialViewController="01J-lp-oVM">
<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">
<dependencies>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="8122"/>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="9530"/>
</dependencies>
<scenes>
<!--View Controller-->
@@ -15,7 +16,6 @@
<view key="view" contentMode="scaleToFill" id="Ze5-6b-2t3">
<rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<animations/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
</view>
</viewController>
File diff suppressed because it is too large Load Diff
+8
View File
@@ -22,6 +22,10 @@
<string>1</string>
<key>LSRequiresIPhoneOS</key>
<true/>
<key>UIAppFonts</key>
<array>
<string>OpenSans-Semibold.ttf</string>
</array>
<key>UILaunchStoryboardName</key>
<string>LaunchScreen</string>
<key>UIMainStoryboardFile</key>
@@ -30,9 +34,13 @@
<array>
<string>armv7</string>
</array>
<key>UIStatusBarHidden</key>
<false/>
<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
</array>
<key>UIViewControllerBasedStatusBarAppearance</key>
<false/>
</dict>
</plist>
@@ -1,15 +0,0 @@
//
// TableViewCell.swift
// NavigationStackDemo
//
// Created by Alex K. on 29/02/16.
// Copyright © 2016 Alex K. All rights reserved.
//
import UIKit
class TableViewCell: UITableViewCell {
@IBOutlet weak var circleView: UIView!
@IBOutlet weak var contantHeight: NSLayoutConstraint!
}
@@ -1,80 +0,0 @@
//
// FirstTableViewController.swift
// NavigationStackDemo
//
// Created by Alex K. on 29/02/16.
// Copyright © 2016 Alex K. All rights reserved.
//
import UIKit
// MARK: FirstTableViewController
class FirstTableViewController: UITableViewController {
let items = [
UIColor(red:0.97, green:0.74, blue:0.58, alpha:1),
UIColor(red:0.95, green:0.86, blue:0.58, alpha:1),
UIColor(red:0.78, green:0.89, blue:0.58, alpha:1),
UIColor(red:0.61, green:0.86, blue:0.87, alpha:1),
UIColor(red:0.77, green:0.76, blue:0.92, alpha:1)
]
override func viewDidLoad() {
super.viewDidLoad()
navigationController!.interactivePopGestureRecognizer?.delegate = self
}
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
if let navigationController = navigationController {
navigationController.navigationBar.barTintColor = UIColor(red:0.93, green:0.93, blue:0.95, alpha:1)
}
}
}
// MARK: UIGestureRecognizerDelegate
extension FirstTableViewController: UIGestureRecognizerDelegate {
func gestureRecognizerShouldBegin(gestureRecognizer: UIGestureRecognizer) -> Bool {
if navigationController?.viewControllers.count == 2 {
return true
}
if let navigationController = self.navigationController as? NavigationStack {
navigationController.showControllers()
}
return false
}
}
// MARK: UITableViewDataSource
extension FirstTableViewController {
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return items.count
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
return tableView.dequeueReusableCellWithIdentifier(String(TableViewCell), forIndexPath: indexPath)
}
}
// MARK: UITableViewDelegate
extension FirstTableViewController {
override func tableView(tableView: UITableView, willDisplayCell
cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) {
guard let cell = cell as? TableViewCell else {
return
}
cell.circleView.backgroundColor = items[indexPath.row]
cell.contantHeight.constant = CGFloat(arc4random_uniform(150) + 30)
}
}
@@ -0,0 +1,53 @@
//
// FirstTableViewController.swift
// NavigationStackDemo
//
// Created by Alex K. on 29/02/16.
// Copyright © 2016 Alex K. All rights reserved.
//
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)
}
}
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
}
if let navigationController = self.navigationController as? NavigationStack {
navigationController.showControllers()
}
return false
}
}
@@ -1,28 +0,0 @@
//
// FourthViewController.swift
// NavigationStackDemo
//
// Created by Alex K. on 29/02/16.
// Copyright © 2016 Alex K. All rights reserved.
//
import UIKit
class FourthViewController: UITableViewController {
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
if let navigationController = navigationController {
navigationController.navigationBar.barTintColor = UIColor(red:0.78, green:0.89, blue:0.58, alpha:1)
}
}
@IBAction func backHandler(sender: AnyObject) {
navigationController?.popViewControllerAnimated(true)
}
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
performSegueWithIdentifier("push", sender: nil)
}
}
@@ -13,9 +13,11 @@ class SecondViewController: UITableViewController {
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)
}
// 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
// }
}
@@ -10,12 +10,11 @@ import UIKit
class ThirdViewController: UITableViewController {
@IBInspectable var navbarColor: UIColor = .blackColor()
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
if let navigationController = navigationController {
navigationController.navigationBar.barTintColor = UIColor(red:0.97, green:0.74, blue:0.58, alpha:1)
}
}
@IBAction func backHandler(sender: AnyObject) {
-24
View File
@@ -1,24 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>$(PRODUCT_NAME)</string>
<key>CFBundlePackageType</key>
<string>BNDL</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>1</string>
</dict>
</plist>
@@ -1,36 +0,0 @@
//
// NavigationStackDemoUITests.swift
// NavigationStackDemoUITests
//
// Created by Alex K. on 26/02/16.
// Copyright © 2016 Alex K. All rights reserved.
//
import XCTest
class NavigationStackDemoUITests: XCTestCase {
override func setUp() {
super.setUp()
// Put setup code here. This method is called before the invocation of each test method in the class.
// In UI tests it is usually best to stop immediately when a failure occurs.
continueAfterFailure = false
// UI tests must launch the application that they test. Doing this in setup will make sure it happens for each test method.
XCUIApplication().launch()
// In UI tests its important to set the initial state - such as interface orientation - required for your tests before they run. The setUp method is a good place to do this.
}
override func tearDown() {
// Put teardown code here. This method is called after the invocation of each test method in the class.
super.tearDown()
}
func testExample() {
// Use recording to get started writing UI tests.
// Use XCTAssert and related functions to verify your tests produce the correct results.
}
}
+17 -1
View File
@@ -1,5 +1,16 @@
![header](./header.png)
# navigation-stack
[![Twitter](https://img.shields.io/badge/Twitter-@Ramotion-blue.svg?style=flat)](http://twitter.com/Ramotion)
[![CocoaPods](https://img.shields.io/cocoapods/p/Navigation-stack.svg)](https://cocoapods.org/pods/Navigation-stack)
[![CocoaPods](https://img.shields.io/cocoapods/v/Navigation-stack.svg)](http://cocoapods.org/pods/Navigation-stack)
[![Travis](https://img.shields.io/travis/Ramotion/navigation-stack.svg)](https://travis-ci.org/Ramotion/navigation-stack)
[![codebeat badge](https://codebeat.co/badges/c322a039-b06b-46d9-bf40-e48cf0365b97)](https://codebeat.co/projects/github-com-ramotion-navigation-stack)
[shot on dribbble](https://dribbble.com/shots/2583175-Navigation-Stack-Swift-Open-Source):
![Animation](Navigation-Stack.gif)
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).
## Requirements
@@ -10,6 +21,11 @@
Just add the Source folder to your project.
or use [CocoaPods](https://cocoapods.org) with Podfile:
``` ruby
pod 'Navigation-stack', '~> 0.0.2'
```
## Usage
1) YourNavigationController inherit from `NavigationStack`
@@ -47,7 +63,7 @@ See [LICENSE](./LICENSE) for details.
## 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=foolding-cell)
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.
[![Twitter URL](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/intent/tweet?text=https://github.com/ramotion/navigation-stack)
@@ -54,6 +54,7 @@ extension CollectionViewStackCell {
let imageView = UIImageView(frame: CGRect.zero)
imageView.translatesAutoresizingMaskIntoConstraints = false
imageView.layer.shouldRasterize = true
contentView.addSubview(imageView)
contentView.addConstraints([
@@ -84,5 +85,20 @@ extension CollectionViewStackCell {
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];
}
}
@@ -43,7 +43,8 @@ class CollectionStackViewController: UICollectionViewController {
overlay: Float,
scaleRatio: Float,
scaleValue: Float,
bgColor: UIColor,
bgColor: UIColor = UIColor.clearColor(),
bgView: UIView? = nil,
decelerationRate:CGFloat) {
self.screens = images
@@ -55,6 +56,7 @@ class CollectionStackViewController: UICollectionViewController {
if let collectionView = self.collectionView {
collectionView.backgroundColor = bgColor
collectionView.backgroundView = bgView
collectionView.decelerationRate = decelerationRate
}
}
@@ -119,8 +121,6 @@ extension CollectionStackViewController {
}
override func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) {
delegate?.controllerDidSelected(index: indexPath.row)
guard let currentCell = collectionView.cellForItemAtIndexPath(indexPath) else {
return
}
@@ -130,11 +130,10 @@ extension CollectionStackViewController {
animations: { () -> Void in
for cell in self.collectionView!.visibleCells() where cell != currentCell {
let row = self.collectionView?.indexPathForCell(cell)?.row
if row > indexPath.row { // move right
cell.center = CGPoint(x: cell.center.x + self.view.bounds.size.width * 2, y: cell.center.y)
} else { // move left
cell.center = CGPoint(x: cell.center.x - self.view.bounds.size.width * 2, y: cell.center.y)
}
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)
@@ -152,7 +151,10 @@ extension CollectionStackViewController {
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)
})
}
}
}
@@ -105,28 +105,33 @@ extension CollectionViewStackFlowLayout {
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 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
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
return CGAffineTransformMakeTranslation(dx, 0)
return CGAffineTransformMakeTranslation(dx, 0)
}
private func calculateAlpha(attributes: UICollectionViewLayoutAttributes, itemWidth: CGFloat, offset: CGFloat) -> CGFloat {
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
+11 -5
View File
@@ -29,13 +29,14 @@ import UIKit
public class NavigationStack: UINavigationController {
@IBInspectable var overlay: Float = 0.8
@IBInspectable var scaleRatio: Float = 14.0
@IBInspectable var scaleValue: Float = 0.99
@IBInspectable var decelerationRate: CGFloat = UIScrollViewDecelerationRateNormal
@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 var bgColor: UIColor = .blackColor()
@IBInspectable public var bgColor: UIColor = .blackColor()
public var bgView: UIView? = nil
private var screens = [UIImage]()
weak public var stackDelegate: UINavigationControllerDelegate? // use this instead delegate
@@ -51,6 +52,10 @@ public class NavigationStack: UINavigationController {
extension NavigationStack {
public func showControllers() {
if screens.count == 0 {
return
}
var allScreens = screens
allScreens.append(view.takeScreenshot())
let collectioView = CollectionStackViewController(images: allScreens,
@@ -59,6 +64,7 @@ extension NavigationStack {
scaleRatio: scaleRatio,
scaleValue: scaleValue,
bgColor: bgColor,
bgView: bgView,
decelerationRate: decelerationRate)
presentViewController(collectioView, animated: false, completion: nil)
BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 8.7 KiB