diff --git a/.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata b/.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata
new file mode 100644
index 0000000..919434a
--- /dev/null
+++ b/.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata
@@ -0,0 +1,7 @@
+
+
+
+
+
diff --git a/FDFullscreenPopGesture/include/UINavigationController+FDFullscreenPopGesture.h b/FDFullscreenPopGesture/include/UINavigationController+FDFullscreenPopGesture.h
new file mode 100644
index 0000000..1be8de7
--- /dev/null
+++ b/FDFullscreenPopGesture/include/UINavigationController+FDFullscreenPopGesture.h
@@ -0,0 +1,62 @@
+// The MIT License (MIT)
+//
+// Copyright (c) 2015-2016 forkingdog ( https://github.com/forkingdog )
+//
+// 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
+
+/// "UINavigation+FDFullscreenPopGesture" extends UINavigationController's swipe-
+/// to-pop behavior in iOS 7+ by supporting fullscreen pan gesture. Instead of
+/// screen edge, you can now swipe from any place on the screen and the onboard
+/// interactive pop transition works seamlessly.
+///
+/// Adding the implementation file of this category to your target will
+/// automatically patch UINavigationController with this feature.
+@interface UINavigationController (FDFullscreenPopGesture)
+
+/// The gesture recognizer that actually handles interactive pop.
+@property (nonatomic, strong, readonly) UIPanGestureRecognizer *fd_fullscreenPopGestureRecognizer;
+
+/// A view controller is able to control navigation bar's appearance by itself,
+/// rather than a global way, checking "fd_prefersNavigationBarHidden" property.
+/// Default to YES, disable it if you don't want so.
+@property (nonatomic, assign) BOOL fd_viewControllerBasedNavigationBarAppearanceEnabled;
+
+@end
+
+/// Allows any view controller to disable interactive pop gesture, which might
+/// be necessary when the view controller itself handles pan gesture in some
+/// cases.
+@interface UIViewController (FDFullscreenPopGesture)
+
+/// Whether the interactive pop gesture is disabled when contained in a navigation
+/// stack.
+@property (nonatomic, assign) BOOL fd_interactivePopDisabled;
+
+/// Indicate this view controller prefers its navigation bar hidden or not,
+/// checked when view controller based navigation bar's appearance is enabled.
+/// Default to NO, bars are more likely to show.
+@property (nonatomic, assign) BOOL fd_prefersNavigationBarHidden;
+
+/// Max allowed initial distance to left edge when you begin the interactive pop
+/// gesture. 0 by default, which means it will ignore this limit.
+@property (nonatomic, assign) CGFloat fd_interactivePopMaxAllowedInitialDistanceToLeftEdge;
+
+@end
diff --git a/FDFullscreenPopGestureDemo/FDFullscreenPopGesture/FDFullscreenPopGesture.h b/FDFullscreenPopGestureDemo/FDFullscreenPopGesture/FDFullscreenPopGesture.h
new file mode 100644
index 0000000..0af8891
--- /dev/null
+++ b/FDFullscreenPopGestureDemo/FDFullscreenPopGesture/FDFullscreenPopGesture.h
@@ -0,0 +1,21 @@
+//
+// FDFullscreenPopGesture.h
+// FDFullscreenPopGesture
+//
+// Created by janlionly on 2019/8/20.
+// Copyright © 2019 forkingdog. All rights reserved.
+//
+
+#import
+
+//! Project version number for FDFullscreenPopGesture.
+FOUNDATION_EXPORT double FDFullscreenPopGestureVersionNumber;
+
+//! Project version string for FDFullscreenPopGesture.
+FOUNDATION_EXPORT const unsigned char FDFullscreenPopGestureVersionString[];
+
+// In this header, you should import all the public headers of your framework using statements like #import
+
+#if __has_include("UINavigationController+FDFullscreenPopGesture.h")
+#import
+#endif
diff --git a/FDFullscreenPopGestureDemo/FDFullscreenPopGesture/Info.plist b/FDFullscreenPopGestureDemo/FDFullscreenPopGesture/Info.plist
new file mode 100644
index 0000000..e1fe4cf
--- /dev/null
+++ b/FDFullscreenPopGestureDemo/FDFullscreenPopGesture/Info.plist
@@ -0,0 +1,22 @@
+
+
+
+
+ CFBundleDevelopmentRegion
+ $(DEVELOPMENT_LANGUAGE)
+ CFBundleExecutable
+ $(EXECUTABLE_NAME)
+ CFBundleIdentifier
+ $(PRODUCT_BUNDLE_IDENTIFIER)
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundleName
+ $(PRODUCT_NAME)
+ CFBundlePackageType
+ FMWK
+ CFBundleShortVersionString
+ 1.0
+ CFBundleVersion
+ $(CURRENT_PROJECT_VERSION)
+
+
diff --git a/FDFullscreenPopGestureDemo/FDFullscreenPopGestureDemo.xcodeproj/project.pbxproj b/FDFullscreenPopGestureDemo/FDFullscreenPopGestureDemo.xcodeproj/project.pbxproj
index 0f24f55..42ea564 100644
--- a/FDFullscreenPopGestureDemo/FDFullscreenPopGestureDemo.xcodeproj/project.pbxproj
+++ b/FDFullscreenPopGestureDemo/FDFullscreenPopGestureDemo.xcodeproj/project.pbxproj
@@ -8,6 +8,11 @@
/* Begin PBXBuildFile section */
140C9FF71DAF688C008260D6 /* FDDemoScrollView.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C9FF61DAF688C008260D6 /* FDDemoScrollView.m */; };
+ 2720C7E5230B874600A24F09 /* FDFullscreenPopGesture.h in Headers */ = {isa = PBXBuildFile; fileRef = 2720C7E3230B874600A24F09 /* FDFullscreenPopGesture.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 2720C7E8230B874600A24F09 /* FDFullscreenPopGesture.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2720C7E1230B874600A24F09 /* FDFullscreenPopGesture.framework */; };
+ 2720C7E9230B874600A24F09 /* FDFullscreenPopGesture.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 2720C7E1230B874600A24F09 /* FDFullscreenPopGesture.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
+ 2720C7EE230B880F00A24F09 /* UINavigationController+FDFullscreenPopGesture.m in Sources */ = {isa = PBXBuildFile; fileRef = 4894F4441B183E99009F44D9 /* UINavigationController+FDFullscreenPopGesture.m */; };
+ 2720C7EF230B881700A24F09 /* UINavigationController+FDFullscreenPopGesture.h in Headers */ = {isa = PBXBuildFile; fileRef = 4894F4451B183E99009F44D9 /* UINavigationController+FDFullscreenPopGesture.h */; settings = {ATTRIBUTES = (Public, ); }; };
4894F4201B183DE3009F44D9 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 4894F41F1B183DE3009F44D9 /* main.m */; };
4894F4231B183DE3009F44D9 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 4894F4221B183DE3009F44D9 /* AppDelegate.m */; };
4894F4291B183DE3009F44D9 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 4894F4271B183DE3009F44D9 /* Main.storyboard */; };
@@ -16,9 +21,36 @@
4894F4461B183E99009F44D9 /* UINavigationController+FDFullscreenPopGesture.m in Sources */ = {isa = PBXBuildFile; fileRef = 4894F4441B183E99009F44D9 /* UINavigationController+FDFullscreenPopGesture.m */; };
/* End PBXBuildFile section */
+/* Begin PBXContainerItemProxy section */
+ 2720C7E6230B874600A24F09 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = 4894F4121B183DE3009F44D9 /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = 2720C7E0230B874600A24F09;
+ remoteInfo = FDFullscreenPopGesture;
+ };
+/* End PBXContainerItemProxy section */
+
+/* Begin PBXCopyFilesBuildPhase section */
+ 2720C7ED230B874600A24F09 /* Embed Frameworks */ = {
+ isa = PBXCopyFilesBuildPhase;
+ buildActionMask = 2147483647;
+ dstPath = "";
+ dstSubfolderSpec = 10;
+ files = (
+ 2720C7E9230B874600A24F09 /* FDFullscreenPopGesture.framework in Embed Frameworks */,
+ );
+ name = "Embed Frameworks";
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXCopyFilesBuildPhase section */
+
/* Begin PBXFileReference section */
140C9FF51DAF688C008260D6 /* FDDemoScrollView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FDDemoScrollView.h; sourceTree = ""; };
140C9FF61DAF688C008260D6 /* FDDemoScrollView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FDDemoScrollView.m; sourceTree = ""; };
+ 2720C7E1230B874600A24F09 /* FDFullscreenPopGesture.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = FDFullscreenPopGesture.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ 2720C7E3230B874600A24F09 /* FDFullscreenPopGesture.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FDFullscreenPopGesture.h; sourceTree = ""; };
+ 2720C7E4230B874600A24F09 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
4894F41A1B183DE3009F44D9 /* FDFullscreenPopGestureDemo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = FDFullscreenPopGestureDemo.app; sourceTree = BUILT_PRODUCTS_DIR; };
4894F41E1B183DE3009F44D9 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
4894F41F1B183DE3009F44D9 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; };
@@ -32,20 +64,38 @@
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
+ 2720C7DE230B874600A24F09 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
4894F4171B183DE3009F44D9 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
+ 2720C7E8230B874600A24F09 /* FDFullscreenPopGesture.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
+ 2720C7E2230B874600A24F09 /* FDFullscreenPopGesture */ = {
+ isa = PBXGroup;
+ children = (
+ 2720C7E3230B874600A24F09 /* FDFullscreenPopGesture.h */,
+ 2720C7E4230B874600A24F09 /* Info.plist */,
+ );
+ path = FDFullscreenPopGesture;
+ sourceTree = "";
+ };
4894F4111B183DE3009F44D9 = {
isa = PBXGroup;
children = (
4894F41C1B183DE3009F44D9 /* FDFullscreenPopGestureDemo */,
+ 2720C7E2230B874600A24F09 /* FDFullscreenPopGesture */,
4894F41B1B183DE3009F44D9 /* Products */,
);
sourceTree = "";
@@ -54,6 +104,7 @@
isa = PBXGroup;
children = (
4894F41A1B183DE3009F44D9 /* FDFullscreenPopGestureDemo.app */,
+ 2720C7E1230B874600A24F09 /* FDFullscreenPopGesture.framework */,
);
name = Products;
sourceTree = "";
@@ -95,7 +146,37 @@
};
/* End PBXGroup section */
+/* Begin PBXHeadersBuildPhase section */
+ 2720C7DC230B874600A24F09 /* Headers */ = {
+ isa = PBXHeadersBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 2720C7E5230B874600A24F09 /* FDFullscreenPopGesture.h in Headers */,
+ 2720C7EF230B881700A24F09 /* UINavigationController+FDFullscreenPopGesture.h in Headers */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXHeadersBuildPhase section */
+
/* Begin PBXNativeTarget section */
+ 2720C7E0230B874600A24F09 /* FDFullscreenPopGesture */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = 2720C7EC230B874600A24F09 /* Build configuration list for PBXNativeTarget "FDFullscreenPopGesture" */;
+ buildPhases = (
+ 2720C7DC230B874600A24F09 /* Headers */,
+ 2720C7DD230B874600A24F09 /* Sources */,
+ 2720C7DE230B874600A24F09 /* Frameworks */,
+ 2720C7DF230B874600A24F09 /* Resources */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = FDFullscreenPopGesture;
+ productName = FDFullscreenPopGesture;
+ productReference = 2720C7E1230B874600A24F09 /* FDFullscreenPopGesture.framework */;
+ productType = "com.apple.product-type.framework";
+ };
4894F4191B183DE3009F44D9 /* FDFullscreenPopGestureDemo */ = {
isa = PBXNativeTarget;
buildConfigurationList = 4894F43D1B183DE3009F44D9 /* Build configuration list for PBXNativeTarget "FDFullscreenPopGestureDemo" */;
@@ -103,10 +184,12 @@
4894F4161B183DE3009F44D9 /* Sources */,
4894F4171B183DE3009F44D9 /* Frameworks */,
4894F4181B183DE3009F44D9 /* Resources */,
+ 2720C7ED230B874600A24F09 /* Embed Frameworks */,
);
buildRules = (
);
dependencies = (
+ 2720C7E7230B874600A24F09 /* PBXTargetDependency */,
);
name = FDFullscreenPopGestureDemo;
productName = FDFullscreenPopGestureDemo;
@@ -122,9 +205,14 @@
LastUpgradeCheck = 0800;
ORGANIZATIONNAME = forkingdog;
TargetAttributes = {
+ 2720C7E0230B874600A24F09 = {
+ CreatedOnToolsVersion = 10.3;
+ ProvisioningStyle = Automatic;
+ };
4894F4191B183DE3009F44D9 = {
CreatedOnToolsVersion = 6.3.1;
- DevelopmentTeam = K5ZWWSV295;
+ DevelopmentTeam = A73XC757VV;
+ ProvisioningStyle = Automatic;
};
};
};
@@ -133,6 +221,7 @@
developmentRegion = English;
hasScannedForEncodings = 0;
knownRegions = (
+ English,
en,
Base,
);
@@ -142,11 +231,19 @@
projectRoot = "";
targets = (
4894F4191B183DE3009F44D9 /* FDFullscreenPopGestureDemo */,
+ 2720C7E0230B874600A24F09 /* FDFullscreenPopGesture */,
);
};
/* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */
+ 2720C7DF230B874600A24F09 /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
4894F4181B183DE3009F44D9 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
@@ -160,6 +257,14 @@
/* End PBXResourcesBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
+ 2720C7DD230B874600A24F09 /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 2720C7EE230B880F00A24F09 /* UINavigationController+FDFullscreenPopGesture.m in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
4894F4161B183DE3009F44D9 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
@@ -173,6 +278,14 @@
};
/* End PBXSourcesBuildPhase section */
+/* Begin PBXTargetDependency section */
+ 2720C7E7230B874600A24F09 /* PBXTargetDependency */ = {
+ isa = PBXTargetDependency;
+ target = 2720C7E0230B874600A24F09 /* FDFullscreenPopGesture */;
+ targetProxy = 2720C7E6230B874600A24F09 /* PBXContainerItemProxy */;
+ };
+/* End PBXTargetDependency section */
+
/* Begin PBXVariantGroup section */
4894F4271B183DE3009F44D9 /* Main.storyboard */ = {
isa = PBXVariantGroup;
@@ -193,6 +306,90 @@
/* End PBXVariantGroup section */
/* Begin XCBuildConfiguration section */
+ 2720C7EA230B874600A24F09 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ CLANG_ANALYZER_NONNULL = YES;
+ CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
+ CLANG_ENABLE_OBJC_WEAK = YES;
+ CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
+ CLANG_WARN_COMMA = YES;
+ CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
+ CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
+ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
+ CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
+ CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+ CLANG_WARN_STRICT_PROTOTYPES = YES;
+ CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
+ CODE_SIGN_IDENTITY = "iPhone Developer";
+ CODE_SIGN_STYLE = Automatic;
+ CURRENT_PROJECT_VERSION = 1;
+ DEBUG_INFORMATION_FORMAT = dwarf;
+ DEFINES_MODULE = YES;
+ DEVELOPMENT_TEAM = "";
+ DYLIB_COMPATIBILITY_VERSION = 1;
+ DYLIB_CURRENT_VERSION = 1;
+ DYLIB_INSTALL_NAME_BASE = "@rpath";
+ GCC_C_LANGUAGE_STANDARD = gnu11;
+ INFOPLIST_FILE = FDFullscreenPopGesture/Info.plist;
+ INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
+ IPHONEOS_DEPLOYMENT_TARGET = 12.4;
+ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
+ MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
+ MTL_FAST_MATH = YES;
+ PRODUCT_BUNDLE_IDENTIFIER = com.janlion.FDFullscreenPopGesture;
+ PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
+ PROVISIONING_PROFILE_SPECIFIER = "";
+ SKIP_INSTALL = YES;
+ TARGETED_DEVICE_FAMILY = "1,2";
+ VERSIONING_SYSTEM = "apple-generic";
+ VERSION_INFO_PREFIX = "";
+ };
+ name = Debug;
+ };
+ 2720C7EB230B874600A24F09 /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ CLANG_ANALYZER_NONNULL = YES;
+ CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
+ CLANG_ENABLE_OBJC_WEAK = YES;
+ CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
+ CLANG_WARN_COMMA = YES;
+ CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
+ CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
+ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
+ CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
+ CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+ CLANG_WARN_STRICT_PROTOTYPES = YES;
+ CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
+ CODE_SIGN_IDENTITY = "iPhone Developer";
+ CODE_SIGN_STYLE = Automatic;
+ CURRENT_PROJECT_VERSION = 1;
+ DEFINES_MODULE = YES;
+ DEVELOPMENT_TEAM = "";
+ DYLIB_COMPATIBILITY_VERSION = 1;
+ DYLIB_CURRENT_VERSION = 1;
+ DYLIB_INSTALL_NAME_BASE = "@rpath";
+ GCC_C_LANGUAGE_STANDARD = gnu11;
+ INFOPLIST_FILE = FDFullscreenPopGesture/Info.plist;
+ INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
+ IPHONEOS_DEPLOYMENT_TARGET = 12.4;
+ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
+ MTL_FAST_MATH = YES;
+ PRODUCT_BUNDLE_IDENTIFIER = com.janlion.FDFullscreenPopGesture;
+ PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
+ PROVISIONING_PROFILE_SPECIFIER = "";
+ SKIP_INSTALL = YES;
+ TARGETED_DEVICE_FAMILY = "1,2";
+ VERSIONING_SYSTEM = "apple-generic";
+ VERSION_INFO_PREFIX = "";
+ };
+ name = Release;
+ };
4894F43B1B183DE3009F44D9 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
@@ -282,11 +479,14 @@
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
- DEVELOPMENT_TEAM = K5ZWWSV295;
+ CODE_SIGN_IDENTITY = "iPhone Developer";
+ CODE_SIGN_STYLE = Automatic;
+ DEVELOPMENT_TEAM = A73XC757VV;
INFOPLIST_FILE = FDFullscreenPopGestureDemo/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
- PRODUCT_BUNDLE_IDENTIFIER = com.afantree.FDFullscreenPopGestureDemo;
+ PRODUCT_BUNDLE_IDENTIFIER = com.janlion.FDFullscreenPopGestureDemo;
PRODUCT_NAME = "$(TARGET_NAME)";
+ PROVISIONING_PROFILE_SPECIFIER = "";
};
name = Debug;
};
@@ -294,17 +494,29 @@
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
- DEVELOPMENT_TEAM = K5ZWWSV295;
+ CODE_SIGN_IDENTITY = "iPhone Developer";
+ CODE_SIGN_STYLE = Automatic;
+ DEVELOPMENT_TEAM = A73XC757VV;
INFOPLIST_FILE = FDFullscreenPopGestureDemo/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
- PRODUCT_BUNDLE_IDENTIFIER = com.afantree.FDFullscreenPopGestureDemo;
+ PRODUCT_BUNDLE_IDENTIFIER = com.janlion.FDFullscreenPopGestureDemo;
PRODUCT_NAME = "$(TARGET_NAME)";
+ PROVISIONING_PROFILE_SPECIFIER = "";
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
+ 2720C7EC230B874600A24F09 /* Build configuration list for PBXNativeTarget "FDFullscreenPopGesture" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 2720C7EA230B874600A24F09 /* Debug */,
+ 2720C7EB230B874600A24F09 /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
4894F4151B183DE3009F44D9 /* Build configuration list for PBXProject "FDFullscreenPopGestureDemo" */ = {
isa = XCConfigurationList;
buildConfigurations = (
diff --git a/FDFullscreenPopGestureDemo/FDFullscreenPopGestureDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/FDFullscreenPopGestureDemo/FDFullscreenPopGestureDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
new file mode 100644
index 0000000..18d9810
--- /dev/null
+++ b/FDFullscreenPopGestureDemo/FDFullscreenPopGestureDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
@@ -0,0 +1,8 @@
+
+
+
+
+ IDEDidComputeMac32BitWarning
+
+
+
diff --git a/FDFullscreenPopGestureDemo/FDFullscreenPopGestureDemo.xcodeproj/xcshareddata/xcschemes/FDFullscreenPopGesture.xcscheme b/FDFullscreenPopGestureDemo/FDFullscreenPopGestureDemo.xcodeproj/xcshareddata/xcschemes/FDFullscreenPopGesture.xcscheme
new file mode 100644
index 0000000..39faea0
--- /dev/null
+++ b/FDFullscreenPopGestureDemo/FDFullscreenPopGestureDemo.xcodeproj/xcshareddata/xcschemes/FDFullscreenPopGesture.xcscheme
@@ -0,0 +1,80 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Package.swift b/Package.swift
new file mode 100644
index 0000000..282d0be
--- /dev/null
+++ b/Package.swift
@@ -0,0 +1,29 @@
+// swift-tools-version:5.2
+// The swift-tools-version declares the minimum version of Swift required to build this package.
+
+import PackageDescription
+
+let package = Package(
+ name: "FDFullscreenPopGesture",
+ products: [
+ // Products define the executables and libraries produced by a package, and make them visible to other packages.
+ .library(
+ name: "FDFullscreenPopGesture",
+ targets: ["FDFullscreenPopGesture"]),
+ ],
+ dependencies: [
+ // Dependencies declare other packages that this package depends on.
+ // .package(url: /* package url */, from: "1.0.0"),
+ ],
+ targets: [
+ // Targets are the basic building blocks of a package. A target can define a module or a test suite.
+ // Targets can depend on other targets in this package, and on products in packages which this package depends on.
+ .target(
+ name: "FDFullscreenPopGesture",
+ dependencies: [],
+ path: "FDFullscreenPopGesture"),
+ .testTarget(
+ name: "FDFullscreenPopGestureTests",
+ dependencies: ["FDFullscreenPopGesture"]),
+ ]
+)
diff --git a/README.md b/README.md
index 669267b..144eb40 100644
--- a/README.md
+++ b/README.md
@@ -68,6 +68,20 @@ Use CocoaPods
``` ruby
pod 'FDFullscreenPopGesture', '1.1'
```
+
+Use Carthage
+
+``` ruby
+github "janlionly/FDFullscreenPopGesture"
+```
+
+Swift Package Manager
+- iOS: Open Xcode, File->Swift Packages, search input **https://github.com/janlionly/FDFullscreenPopGesture.git**, and then select branch **master**.
+- Or add dependencies in your `Package.swift`:
+``` ruby
+.package(url: "https://github.com/janlionly/FDFullscreenPopGesture.git", .branch("master")),
+```
+
# Release Notes
**1.1** - View controller based navigation bar appearance and transition.
diff --git a/Tests/FDFullscreenPopGestureTests/FDFullscreenPopGestureTests.swift b/Tests/FDFullscreenPopGestureTests/FDFullscreenPopGestureTests.swift
new file mode 100644
index 0000000..fee91f5
--- /dev/null
+++ b/Tests/FDFullscreenPopGestureTests/FDFullscreenPopGestureTests.swift
@@ -0,0 +1,15 @@
+import XCTest
+@testable import FDFullscreenPopGesture
+
+final class FDFullscreenPopGestureTests: XCTestCase {
+ func testExample() {
+ // This is an example of a functional test case.
+ // Use XCTAssert and related functions to verify your tests produce the correct
+ // results.
+ XCTAssertEqual(FDFullscreenPopGesture().text, "Hello, World!")
+ }
+
+ static var allTests = [
+ ("testExample", testExample),
+ ]
+}
diff --git a/Tests/FDFullscreenPopGestureTests/XCTestManifests.swift b/Tests/FDFullscreenPopGestureTests/XCTestManifests.swift
new file mode 100644
index 0000000..2efad9c
--- /dev/null
+++ b/Tests/FDFullscreenPopGestureTests/XCTestManifests.swift
@@ -0,0 +1,9 @@
+import XCTest
+
+#if !canImport(ObjectiveC)
+public func allTests() -> [XCTestCaseEntry] {
+ return [
+ testCase(FDFullscreenPopGestureTests.allTests),
+ ]
+}
+#endif
diff --git a/Tests/LinuxMain.swift b/Tests/LinuxMain.swift
new file mode 100644
index 0000000..66c4966
--- /dev/null
+++ b/Tests/LinuxMain.swift
@@ -0,0 +1,7 @@
+import XCTest
+
+import FDFullscreenPopGestureTests
+
+var tests = [XCTestCaseEntry]()
+tests += FDFullscreenPopGestureTests.allTests()
+XCTMain(tests)