14 Commits

Author SHA1 Message Date
Alex.k 4733501e56 Merge branch 'master' of https://github.com/Ramotion/navigation-stack 2016-06-03 16:25:44 +03:00
Alex.k df6b401580 added docs 2016-06-03 16:25:37 +03:00
Alex 1c43dc8316 Update README.md 2016-06-02 16:37:54 +03:00
Alex.k 50eb4f6118 update travis and readme 2016-06-01 14:38:02 +03:00
Alex.k 8852b680a3 shared scheme 2016-06-01 12:15:31 +03:00
Alex.k 37bed8284e update readme and podspec 2016-06-01 09:21:13 +03:00
Alex e161807bef Merge pull request #5 from durul/master
added blurEffect
2016-06-01 06:15:14 +00:00
durul 9b0371b579 added blurEffect
added blurEffect
2016-05-31 13:07:32 -04:00
Alex 220dcd062d Update README.md 2016-04-14 09:40:14 +03:00
Alex.k 7c6d3c9652 update podspec 2016-04-14 09:38:09 +03:00
Alex f10317cef2 Merge pull request #4 from AFcgi/master
[FIX] unbalanced calls to begin/end appearance transitions issue
2016-04-14 09:36:02 +03:00
cgi 74d58700d0 [FIX] unbalanced calls to begin/end appearance transitions issue 2016-04-13 21:35:31 +02:00
Alex.k a8621a582f update podspec 2016-04-12 09:52:44 +03:00
Alex.k c615143b62 fixed log warning 2016-04-12 09:49:57 +03:00
10 changed files with 290 additions and 81 deletions
+1 -1
View File
@@ -1,4 +1,4 @@
osx_image: xcode7.2
osx_image: xcode7.3
language: objective-c
xcode_project: NavigationStackDemo.xcodeproj
+1 -1
View File
@@ -1,6 +1,6 @@
Pod::Spec.new do |s|
s.name = 'Navigation-stack'
s.version = '0.0.2'
s.version = '0.0.5'
s.summary = 'Show list of navigationControllers'
s.license = 'MIT'
s.homepage = 'https://github.com/Ramotion/navigation-stack'
+26
View File
@@ -0,0 +1,26 @@
<?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>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>$(CURRENT_PROJECT_VERSION)</string>
<key>NSPrincipalClass</key>
<string></string>
</dict>
</plist>
+19
View File
@@ -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>
+169 -4
View File
@@ -3,13 +3,20 @@
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 */; };
@@ -36,6 +43,13 @@
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
84368B411CFEDDB1007C4278 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 8444B0E41C80238500B53B4E /* Project object */;
proxyType = 1;
remoteGlobalIDString = 84368B3B1CFEDDB1007C4278;
remoteInfo = NavigationStack;
};
8444B1011C80238500B53B4E /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 8444B0E41C80238500B53B4E /* Project object */;
@@ -45,8 +59,25 @@
};
/* 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>"; };
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 /* 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>"; };
@@ -69,10 +100,18 @@
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
84368B381CFEDDB1007C4278 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
8444B0E91C80238500B53B4E /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
84368B431CFEDDB1007C4278 /* NavigationStack.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -86,11 +125,21 @@
/* 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>";
@@ -100,6 +149,7 @@
children = (
8444B0EC1C80238500B53B4E /* NavigationStackDemo.app */,
8444B1001C80238500B53B4E /* NavigationStackDemoTests.xctest */,
84368B3C1CFEDDB1007C4278 /* NavigationStack.framework */,
);
name = Products;
sourceTree = "<group>";
@@ -219,7 +269,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,10 +306,12 @@
8444B0E81C80238500B53B4E /* Sources */,
8444B0E91C80238500B53B4E /* Frameworks */,
8444B0EA1C80238500B53B4E /* Resources */,
84368B481CFEDDB1007C4278 /* Embed Frameworks */,
);
buildRules = (
);
dependencies = (
84368B421CFEDDB1007C4278 /* PBXTargetDependency */,
);
name = NavigationStackDemo;
productName = NavigationStackDemo;
@@ -265,6 +346,10 @@
LastUpgradeCheck = 0720;
ORGANIZATIONNAME = "Alex K.";
TargetAttributes = {
84368B3B1CFEDDB1007C4278 = {
CreatedOnToolsVersion = 7.3.1;
DevelopmentTeam = 34MUF9YXTA;
};
8444B0EB1C80238500B53B4E = {
CreatedOnToolsVersion = 7.2.1;
DevelopmentTeam = 34MUF9YXTA;
@@ -276,7 +361,7 @@
};
};
buildConfigurationList = 8444B0E71C80238500B53B4E /* Build configuration list for PBXProject "NavigationStackDemo" */;
compatibilityVersion = "Xcode 3.2";
compatibilityVersion = "Xcode 6.3";
developmentRegion = English;
hasScannedForEncodings = 0;
knownRegions = (
@@ -290,11 +375,19 @@
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;
@@ -319,6 +412,17 @@
/* 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;
@@ -355,6 +459,11 @@
/* End PBXSourcesBuildPhase section */
/* Begin PBXTargetDependency section */
84368B421CFEDDB1007C4278 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = 84368B3B1CFEDDB1007C4278 /* NavigationStack */;
targetProxy = 84368B411CFEDDB1007C4278 /* PBXContainerItemProxy */;
};
8444B1021C80238500B53B4E /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = 8444B0EB1C80238500B53B4E /* NavigationStackDemo */;
@@ -382,6 +491,52 @@
/* End PBXVariantGroup section */
/* Begin XCBuildConfiguration section */
84368B451CFEDDB1007C4278 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
CLANG_ANALYZER_NONNULL = YES;
CODE_SIGN_IDENTITY = "iPhone Developer";
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;
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 = "iPhone Developer";
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;
TARGETED_DEVICE_FAMILY = "1,2";
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
name = Release;
};
8444B1121C80238500B53B4E /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
@@ -418,7 +573,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 = 9.3;
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
@@ -456,7 +611,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 = 9.3;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos;
VALIDATE_PRODUCT = YES;
@@ -468,6 +623,7 @@
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CODE_SIGN_IDENTITY = "iPhone Developer";
EMBEDDED_CONTENT_CONTAINS_SWIFT = YES;
INFOPLIST_FILE = NavigationStackDemo/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
@@ -481,6 +637,7 @@
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CODE_SIGN_IDENTITY = "iPhone Developer";
EMBEDDED_CONTENT_CONTAINS_SWIFT = YES;
INFOPLIST_FILE = NavigationStackDemo/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
@@ -516,6 +673,14 @@
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
84368B471CFEDDB1007C4278 /* Build configuration list for PBXNativeTarget "NavigationStack" */ = {
isa = XCConfigurationList;
buildConfigurations = (
84368B451CFEDDB1007C4278 /* Debug */,
84368B461CFEDDB1007C4278 /* Release */,
);
defaultConfigurationIsVisible = 0;
};
8444B0E71C80238500B53B4E /* Build configuration list for PBXProject "NavigationStackDemo" */ = {
isa = XCConfigurationList;
buildConfigurations = (
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0720"
LastUpgradeVersion = "0730"
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,26 +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>
@@ -61,16 +42,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>
</MacroExpansion>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
@@ -80,16 +60,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">
@@ -1,7 +1,7 @@
<?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="10116" systemVersion="15E65" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" initialViewController="wMY-lE-9QR">
<dependencies>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="9530"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="10085"/>
<capability name="Constraints to layout margins" minToolsVersion="6.0"/>
</dependencies>
<customFonts key="customFonts">
@@ -269,11 +269,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"/>
+11 -5
View File
@@ -6,6 +6,7 @@
[![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)
[![Carthage compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Ramotion/navigation-stack)
[shot on dribbble](https://dribbble.com/shots/2583175-Navigation-Stack-Swift-Open-Source):
![Animation](Navigation-Stack.gif)
@@ -15,7 +16,7 @@ The [iPhone mockup](https://store.ramotion.com/product/iphone-6-mockups?utm_sour
## Requirements
- iOS 9.0+
- Xcode 7.2
- Xcode 7.3
## Installation
@@ -23,7 +24,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,15 +48,15 @@ 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
}
}
@@ -87,18 +87,17 @@ extension CollectionViewStackCell {
}
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 blurEffect = UIBlurEffect(style: .Dark)
let blurView = UIVisualEffectView(effect: blurEffect)
blurView.translatesAutoresizingMaskIntoConstraints = false
imageView!.insertSubview(blurView, atIndex: 3)
let vibrancyEffect = UIVibrancyEffect(forBlurEffect: blurEffect)
let vibrancyView = UIVisualEffectView(effect: vibrancyEffect)
vibrancyView.translatesAutoresizingMaskIntoConstraints = false
blurView.contentView.addSubview(vibrancyView)
}
}
+37 -18
View File
@@ -25,32 +25,60 @@
import UIKit
// MARK: NavigationStack
/// UINavigationcontroller with animation show lists of UIViewControllers
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
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 public var decelerationRate: CGFloat = UIScrollViewDecelerationRateNormal
/// The color to use for the background of the lists of UIViewcontrollers.
@IBInspectable public var bgColor: UIColor = .blackColor()
/// The background UIView of the lists of UIViewcontrollers.
public var bgView: UIView? = nil
private var screens = [UIImage]()
weak public var stackDelegate: UINavigationControllerDelegate? // use this instead delegate
/// The delegate of the navigation controller object. Use this instead delegate.
weak public 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.
*/
override init(rootViewController: UIViewController) {
super.init(rootViewController: rootViewController)
delegate = self
}
}
// MARK: pulbic methods
extension NavigationStack {
/**
Show list of ViewControllers.
*/
public func showControllers() {
if screens.count == 0 {
return
@@ -72,17 +100,6 @@ extension NavigationStack {
}
// 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 {
@@ -126,7 +143,9 @@ extension NavigationStack: UINavigationControllerDelegate {
extension NavigationStack: CollectionStackViewControllerDelegate {
func controllerDidSelected(index index: Int) {
popToIndex(index, animated: false)
let newViewControllers = Array(viewControllers[0...index])
setViewControllers(newViewControllers, animated: false)
screens.removeRange(index..<screens.count)
}
}