[
  {
    "path": "BBGestureBack.xcodeproj/project.pbxproj",
    "content": "// !$*UTF8*$!\n{\n\tarchiveVersion = 1;\n\tclasses = {\n\t};\n\tobjectVersion = 48;\n\tobjects = {\n\n/* Begin PBXBuildFile section */\n\t\tCEC3BBC8206354CE0003CF06 /* BBGestureBackConst.m in Sources */ = {isa = PBXBuildFile; fileRef = CEC3BBC7206354CE0003CF06 /* BBGestureBackConst.m */; };\n\t\tCEDECB9C205CC3CD00C08340 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = CEDECB9B205CC3CD00C08340 /* Assets.xcassets */; };\n\t\tCEDECB9F205CC3CD00C08340 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = CEDECB9D205CC3CD00C08340 /* LaunchScreen.storyboard */; };\n\t\tCEDECBA2205CC3CD00C08340 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = CEDECBA1205CC3CD00C08340 /* main.m */; };\n\t\tCEDECBCD205CC54D00C08340 /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = CEDECBC7205CC54D00C08340 /* ViewController.m */; };\n\t\tCEDECBCE205CC54D00C08340 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = CEDECBCA205CC54D00C08340 /* AppDelegate.m */; };\n\t\tCEDECBD2205CC76800C08340 /* BBTabBarController.m in Sources */ = {isa = PBXBuildFile; fileRef = CEDECBD1205CC76800C08340 /* BBTabBarController.m */; };\n\t\tCEDECBD7205CC82800C08340 /* HomeViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = CEDECBD6205CC82800C08340 /* HomeViewController.m */; };\n\t\tCEDECBDB205CC8BC00C08340 /* BBNavigationController.m in Sources */ = {isa = PBXBuildFile; fileRef = CEDECBDA205CC8BC00C08340 /* BBNavigationController.m */; };\n\t\tCEDECBE0205CC94100C08340 /* UserViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = CEDECBDF205CC94100C08340 /* UserViewController.m */; };\n\t\tCEDECBE3205CCA4100C08340 /* BBGestureBaseController.m in Sources */ = {isa = PBXBuildFile; fileRef = CEDECBE2205CCA4100C08340 /* BBGestureBaseController.m */; };\n\t\tCF395E1420BD496B00434CC7 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = CF395E1320BD496B00434CC7 /* Assets.xcassets */; };\n\t\tCF395E1720BD496B00434CC7 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = CF395E1520BD496B00434CC7 /* LaunchScreen.storyboard */; };\n\t\tCF395E2720BD4BD300434CC7 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = CF395E1F20BD4BD300434CC7 /* ViewController.swift */; };\n\t\tCF395E2820BD4BD300434CC7 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = CF395E2420BD4BD300434CC7 /* AppDelegate.swift */; };\n\t\tCF395E2A20BD4C5800434CC7 /* BBTabBarController.swift in Sources */ = {isa = PBXBuildFile; fileRef = CF395E2920BD4C5800434CC7 /* BBTabBarController.swift */; };\n\t\tCF395E2C20BD4DC400434CC7 /* BBNavigationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = CF395E2B20BD4DC400434CC7 /* BBNavigationController.swift */; };\n\t\tCF395E2E20BD4DE300434CC7 /* HomeViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = CF395E2D20BD4DE300434CC7 /* HomeViewController.swift */; };\n\t\tCF395E3020BD4DF400434CC7 /* UserViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = CF395E2F20BD4DF400434CC7 /* UserViewController.swift */; };\n\t\tCF73731D20B5592C00BBE7AC /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = CF73731C20B5592C00BBE7AC /* Assets.xcassets */; };\n\t\tCF73732020B5592C00BBE7AC /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = CF73731E20B5592C00BBE7AC /* LaunchScreen.storyboard */; };\n\t\tCF73732320B5592C00BBE7AC /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = CF73732220B5592C00BBE7AC /* main.m */; };\n\t\tCF73734C20B559D200BBE7AC /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = CF73734520B559D200BBE7AC /* ViewController.m */; };\n\t\tCF73734D20B559D200BBE7AC /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = CF73734B20B559D200BBE7AC /* AppDelegate.m */; };\n\t\tCF73735120B55B0D00BBE7AC /* BBNavigationController.m in Sources */ = {isa = PBXBuildFile; fileRef = CF73735020B55B0D00BBE7AC /* BBNavigationController.m */; };\n\t\tCF73735520B55CA400BBE7AC /* BBTabBarController.m in Sources */ = {isa = PBXBuildFile; fileRef = CF73735420B55CA400BBE7AC /* BBTabBarController.m */; };\n\t\tCF73735820B55D0B00BBE7AC /* HomeViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = CF73735720B55D0B00BBE7AC /* HomeViewController.m */; };\n\t\tCF73735C20B55D3300BBE7AC /* UserViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = CF73735B20B55D3300BBE7AC /* UserViewController.m */; };\n\t\tCF808DF122520E6A008F9500 /* BBUserGuiderController.m in Sources */ = {isa = PBXBuildFile; fileRef = CF808DF022520E6A008F9500 /* BBUserGuiderController.m */; };\n\t\tCF9A6C07207C9DE3004DD232 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = CF9A6C06207C9DE3004DD232 /* ViewController.swift */; };\n\t\tCF9A6C0B207CA005004DD232 /* BBGestureBackConst.swift in Sources */ = {isa = PBXBuildFile; fileRef = CF9A6C0A207CA005004DD232 /* BBGestureBackConst.swift */; };\n\t\tCF9B76542252F3C100E6031F /* BBUserGuider.bundle in Resources */ = {isa = PBXBuildFile; fileRef = CF9B76532252F3C100E6031F /* BBUserGuider.bundle */; };\n\t\tCF9B765722533D0B00E6031F /* BBUserGuiderController.swift in Sources */ = {isa = PBXBuildFile; fileRef = CF9B765622533D0B00E6031F /* BBUserGuiderController.swift */; };\n\t\tCF9B765A22534ABF00E6031F /* BBUserGuider.bundle in Resources */ = {isa = PBXBuildFile; fileRef = CF9B765922534ABF00E6031F /* BBUserGuider.bundle */; };\n\t\tCFD0E975207A621C00E58465 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = CFD0E974207A621C00E58465 /* Assets.xcassets */; };\n\t\tCFD0E978207A621C00E58465 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = CFD0E976207A621C00E58465 /* LaunchScreen.storyboard */; };\n\t\tCFD0E9A3207BBA5000E58465 /* HomeViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = CFD0E9A2207BBA5000E58465 /* HomeViewController.swift */; };\n\t\tCFD0E9A6207BBAA200E58465 /* UserViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = CFD0E9A5207BBAA200E58465 /* UserViewController.swift */; };\n\t\tCFD0E9AB207BBB3C00E58465 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = CFD0E9AA207BBB3C00E58465 /* AppDelegate.swift */; };\n\t\tCFD0E9AD207BBC9A00E58465 /* BBTabBarController.swift in Sources */ = {isa = PBXBuildFile; fileRef = CFD0E9AC207BBC9A00E58465 /* BBTabBarController.swift */; };\n\t\tCFD0E9AF207BBCD800E58465 /* BBNavigationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = CFD0E9AE207BBCD800E58465 /* BBNavigationController.swift */; };\n\t\tCFD0E9B1207BBD1E00E58465 /* BBGestureBaseController.swift in Sources */ = {isa = PBXBuildFile; fileRef = CFD0E9B0207BBD1E00E58465 /* BBGestureBaseController.swift */; };\n/* End PBXBuildFile section */\n\n/* Begin PBXFileReference section */\n\t\tCEC3BBC6206354AC0003CF06 /* BBGestureBackConst.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BBGestureBackConst.h; sourceTree = \"<group>\"; };\n\t\tCEC3BBC7206354CE0003CF06 /* BBGestureBackConst.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BBGestureBackConst.m; sourceTree = \"<group>\"; };\n\t\tCEDECB8F205CC3CD00C08340 /* BBGestureBack_Full_oc.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = BBGestureBack_Full_oc.app; sourceTree = BUILT_PRODUCTS_DIR; };\n\t\tCEDECB9B205CC3CD00C08340 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = \"<group>\"; };\n\t\tCEDECB9E205CC3CD00C08340 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = \"<group>\"; };\n\t\tCEDECBA0205CC3CD00C08340 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = \"<group>\"; };\n\t\tCEDECBA1205CC3CD00C08340 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = \"<group>\"; };\n\t\tCEDECBC6205CC54D00C08340 /* ViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = \"<group>\"; };\n\t\tCEDECBC7205CC54D00C08340 /* ViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = \"<group>\"; };\n\t\tCEDECBC9205CC54D00C08340 /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = \"<group>\"; };\n\t\tCEDECBCA205CC54D00C08340 /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = \"<group>\"; };\n\t\tCEDECBD0205CC76800C08340 /* BBTabBarController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BBTabBarController.h; sourceTree = \"<group>\"; };\n\t\tCEDECBD1205CC76800C08340 /* BBTabBarController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = BBTabBarController.m; sourceTree = \"<group>\"; };\n\t\tCEDECBD5205CC82800C08340 /* HomeViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HomeViewController.h; sourceTree = \"<group>\"; };\n\t\tCEDECBD6205CC82800C08340 /* HomeViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = HomeViewController.m; sourceTree = \"<group>\"; };\n\t\tCEDECBD9205CC8BC00C08340 /* BBNavigationController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BBNavigationController.h; sourceTree = \"<group>\"; };\n\t\tCEDECBDA205CC8BC00C08340 /* BBNavigationController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = BBNavigationController.m; sourceTree = \"<group>\"; };\n\t\tCEDECBDE205CC94100C08340 /* UserViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UserViewController.h; sourceTree = \"<group>\"; };\n\t\tCEDECBDF205CC94100C08340 /* UserViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = UserViewController.m; sourceTree = \"<group>\"; };\n\t\tCEDECBE1205CCA4100C08340 /* BBGestureBaseController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BBGestureBaseController.h; sourceTree = \"<group>\"; };\n\t\tCEDECBE2205CCA4100C08340 /* BBGestureBaseController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = BBGestureBaseController.m; sourceTree = \"<group>\"; };\n\t\tCF395E0A20BD496B00434CC7 /* BBGestureBack_SysFull_swift.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = BBGestureBack_SysFull_swift.app; sourceTree = BUILT_PRODUCTS_DIR; };\n\t\tCF395E1320BD496B00434CC7 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = \"<group>\"; };\n\t\tCF395E1620BD496B00434CC7 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = \"<group>\"; };\n\t\tCF395E1820BD496B00434CC7 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = \"<group>\"; };\n\t\tCF395E1F20BD4BD300434CC7 /* ViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = \"<group>\"; };\n\t\tCF395E2420BD4BD300434CC7 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = \"<group>\"; };\n\t\tCF395E2920BD4C5800434CC7 /* BBTabBarController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BBTabBarController.swift; sourceTree = \"<group>\"; };\n\t\tCF395E2B20BD4DC400434CC7 /* BBNavigationController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BBNavigationController.swift; sourceTree = \"<group>\"; };\n\t\tCF395E2D20BD4DE300434CC7 /* HomeViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HomeViewController.swift; sourceTree = \"<group>\"; };\n\t\tCF395E2F20BD4DF400434CC7 /* UserViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserViewController.swift; sourceTree = \"<group>\"; };\n\t\tCF73731120B5592A00BBE7AC /* BBGestureBack_SysFull_oc.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = BBGestureBack_SysFull_oc.app; sourceTree = BUILT_PRODUCTS_DIR; };\n\t\tCF73731C20B5592C00BBE7AC /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = \"<group>\"; };\n\t\tCF73731F20B5592C00BBE7AC /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = \"<group>\"; };\n\t\tCF73732120B5592C00BBE7AC /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = \"<group>\"; };\n\t\tCF73732220B5592C00BBE7AC /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = \"<group>\"; };\n\t\tCF73734520B559D200BBE7AC /* ViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = \"<group>\"; };\n\t\tCF73734720B559D200BBE7AC /* ViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = \"<group>\"; };\n\t\tCF73734A20B559D200BBE7AC /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = \"<group>\"; };\n\t\tCF73734B20B559D200BBE7AC /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = \"<group>\"; };\n\t\tCF73734F20B55B0D00BBE7AC /* BBNavigationController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BBNavigationController.h; sourceTree = \"<group>\"; };\n\t\tCF73735020B55B0D00BBE7AC /* BBNavigationController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = BBNavigationController.m; sourceTree = \"<group>\"; };\n\t\tCF73735320B55CA400BBE7AC /* BBTabBarController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BBTabBarController.h; sourceTree = \"<group>\"; };\n\t\tCF73735420B55CA400BBE7AC /* BBTabBarController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BBTabBarController.m; sourceTree = \"<group>\"; };\n\t\tCF73735620B55D0B00BBE7AC /* HomeViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HomeViewController.h; sourceTree = \"<group>\"; };\n\t\tCF73735720B55D0B00BBE7AC /* HomeViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = HomeViewController.m; sourceTree = \"<group>\"; };\n\t\tCF73735A20B55D3300BBE7AC /* UserViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UserViewController.h; sourceTree = \"<group>\"; };\n\t\tCF73735B20B55D3300BBE7AC /* UserViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = UserViewController.m; sourceTree = \"<group>\"; };\n\t\tCF808DEF22520E6A008F9500 /* BBUserGuiderController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BBUserGuiderController.h; sourceTree = \"<group>\"; };\n\t\tCF808DF022520E6A008F9500 /* BBUserGuiderController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = BBUserGuiderController.m; sourceTree = \"<group>\"; };\n\t\tCF9A6C06207C9DE3004DD232 /* ViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = \"<group>\"; };\n\t\tCF9A6C0A207CA005004DD232 /* BBGestureBackConst.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BBGestureBackConst.swift; sourceTree = \"<group>\"; };\n\t\tCF9B76532252F3C100E6031F /* BBUserGuider.bundle */ = {isa = PBXFileReference; lastKnownFileType = \"wrapper.plug-in\"; path = BBUserGuider.bundle; sourceTree = \"<group>\"; };\n\t\tCF9B765622533D0B00E6031F /* BBUserGuiderController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BBUserGuiderController.swift; sourceTree = \"<group>\"; };\n\t\tCF9B765922534ABF00E6031F /* BBUserGuider.bundle */ = {isa = PBXFileReference; lastKnownFileType = \"wrapper.plug-in\"; path = BBUserGuider.bundle; sourceTree = \"<group>\"; };\n\t\tCFD0E96B207A621C00E58465 /* BBGestureBack_Full_swift.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = BBGestureBack_Full_swift.app; sourceTree = BUILT_PRODUCTS_DIR; };\n\t\tCFD0E974207A621C00E58465 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = \"<group>\"; };\n\t\tCFD0E977207A621C00E58465 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = \"<group>\"; };\n\t\tCFD0E979207A621C00E58465 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = \"<group>\"; };\n\t\tCFD0E9A2207BBA5000E58465 /* HomeViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HomeViewController.swift; sourceTree = \"<group>\"; };\n\t\tCFD0E9A5207BBAA200E58465 /* UserViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserViewController.swift; sourceTree = \"<group>\"; };\n\t\tCFD0E9AA207BBB3C00E58465 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = \"<group>\"; };\n\t\tCFD0E9AC207BBC9A00E58465 /* BBTabBarController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BBTabBarController.swift; sourceTree = \"<group>\"; };\n\t\tCFD0E9AE207BBCD800E58465 /* BBNavigationController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BBNavigationController.swift; sourceTree = \"<group>\"; };\n\t\tCFD0E9B0207BBD1E00E58465 /* BBGestureBaseController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BBGestureBaseController.swift; sourceTree = \"<group>\"; };\n\t\tCFE80F3722547FF2001CFA34 /* BBGestureBack.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BBGestureBack.h; sourceTree = \"<group>\"; };\n/* End PBXFileReference section */\n\n/* Begin PBXFrameworksBuildPhase section */\n\t\tCEDECB8C205CC3CD00C08340 /* Frameworks */ = {\n\t\t\tisa = PBXFrameworksBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\tCF395E0720BD496B00434CC7 /* Frameworks */ = {\n\t\t\tisa = PBXFrameworksBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\tCF73730E20B5592A00BBE7AC /* Frameworks */ = {\n\t\t\tisa = PBXFrameworksBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\tCFD0E968207A621C00E58465 /* Frameworks */ = {\n\t\t\tisa = PBXFrameworksBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXFrameworksBuildPhase section */\n\n/* Begin PBXGroup section */\n\t\tCEDECB86205CC3CD00C08340 = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tCEDECB91205CC3CD00C08340 /* BBGestureBack_Full_oc */,\n\t\t\t\tCFD0E96C207A621C00E58465 /* BBGestureBack_Full_swift */,\n\t\t\t\tCF73731220B5592A00BBE7AC /* BBGestureBack_SysFull_oc */,\n\t\t\t\tCF395E0B20BD496B00434CC7 /* BBGestureBack_SysFull_swift */,\n\t\t\t\tCEDECB90205CC3CD00C08340 /* Products */,\n\t\t\t);\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tCEDECB90205CC3CD00C08340 /* Products */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tCEDECB8F205CC3CD00C08340 /* BBGestureBack_Full_oc.app */,\n\t\t\t\tCFD0E96B207A621C00E58465 /* BBGestureBack_Full_swift.app */,\n\t\t\t\tCF73731120B5592A00BBE7AC /* BBGestureBack_SysFull_oc.app */,\n\t\t\t\tCF395E0A20BD496B00434CC7 /* BBGestureBack_SysFull_swift.app */,\n\t\t\t);\n\t\t\tname = Products;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tCEDECB91205CC3CD00C08340 /* BBGestureBack_Full_oc */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tCEDECBC4205CC54D00C08340 /* Classes */,\n\t\t\t\tCEDECB9B205CC3CD00C08340 /* Assets.xcassets */,\n\t\t\t\tCEDECB9D205CC3CD00C08340 /* LaunchScreen.storyboard */,\n\t\t\t\tCEDECBA0205CC3CD00C08340 /* Info.plist */,\n\t\t\t\tCEDECBA1205CC3CD00C08340 /* main.m */,\n\t\t\t);\n\t\t\tpath = BBGestureBack_Full_oc;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tCEDECBC4205CC54D00C08340 /* Classes */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tCF9B76522252F39D00E6031F /* Resource */,\n\t\t\t\tCEDECBC5205CC54D00C08340 /* Home */,\n\t\t\t\tCEDECBDC205CC90F00C08340 /* User */,\n\t\t\t\tCEDECBC8205CC54D00C08340 /* Main */,\n\t\t\t);\n\t\t\tpath = Classes;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tCEDECBC5205CC54D00C08340 /* Home */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tCEDECBD3205CC7F500C08340 /* Index */,\n\t\t\t\tCEDECBC6205CC54D00C08340 /* ViewController.h */,\n\t\t\t\tCEDECBC7205CC54D00C08340 /* ViewController.m */,\n\t\t\t);\n\t\t\tpath = Home;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tCEDECBC8205CC54D00C08340 /* Main */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tCEDECBC9205CC54D00C08340 /* AppDelegate.h */,\n\t\t\t\tCEDECBCA205CC54D00C08340 /* AppDelegate.m */,\n\t\t\t\tCF808DEE22520DE3008F9500 /* BBUserGuider */,\n\t\t\t\tCEDECBD8205CC88500C08340 /* BBNavigation */,\n\t\t\t\tCEDECBCB205CC54D00C08340 /* BBGestureBack */,\n\t\t\t\tCEDECBCF205CC72C00C08340 /* BBTabBar */,\n\t\t\t);\n\t\t\tpath = Main;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tCEDECBCB205CC54D00C08340 /* BBGestureBack */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tCFE80F3722547FF2001CFA34 /* BBGestureBack.h */,\n\t\t\t\tCEC3BBC6206354AC0003CF06 /* BBGestureBackConst.h */,\n\t\t\t\tCEC3BBC7206354CE0003CF06 /* BBGestureBackConst.m */,\n\t\t\t\tCEDECBE1205CCA4100C08340 /* BBGestureBaseController.h */,\n\t\t\t\tCEDECBE2205CCA4100C08340 /* BBGestureBaseController.m */,\n\t\t\t);\n\t\t\tpath = BBGestureBack;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tCEDECBCF205CC72C00C08340 /* BBTabBar */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tCEDECBD0205CC76800C08340 /* BBTabBarController.h */,\n\t\t\t\tCEDECBD1205CC76800C08340 /* BBTabBarController.m */,\n\t\t\t);\n\t\t\tpath = BBTabBar;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tCEDECBD3205CC7F500C08340 /* Index */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tCEDECBD5205CC82800C08340 /* HomeViewController.h */,\n\t\t\t\tCEDECBD6205CC82800C08340 /* HomeViewController.m */,\n\t\t\t);\n\t\t\tpath = Index;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tCEDECBD8205CC88500C08340 /* BBNavigation */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tCEDECBD9205CC8BC00C08340 /* BBNavigationController.h */,\n\t\t\t\tCEDECBDA205CC8BC00C08340 /* BBNavigationController.m */,\n\t\t\t);\n\t\t\tpath = BBNavigation;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tCEDECBDC205CC90F00C08340 /* User */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tCEDECBDD205CC92300C08340 /* Index */,\n\t\t\t);\n\t\t\tpath = User;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tCEDECBDD205CC92300C08340 /* Index */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tCEDECBDE205CC94100C08340 /* UserViewController.h */,\n\t\t\t\tCEDECBDF205CC94100C08340 /* UserViewController.m */,\n\t\t\t);\n\t\t\tpath = Index;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tCF395E0B20BD496B00434CC7 /* BBGestureBack_SysFull_swift */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tCF395E1D20BD4BD300434CC7 /* Classes */,\n\t\t\t\tCF395E1320BD496B00434CC7 /* Assets.xcassets */,\n\t\t\t\tCF395E1520BD496B00434CC7 /* LaunchScreen.storyboard */,\n\t\t\t\tCF395E1820BD496B00434CC7 /* Info.plist */,\n\t\t\t);\n\t\t\tpath = BBGestureBack_SysFull_swift;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tCF395E1D20BD4BD300434CC7 /* Classes */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tCF395E1E20BD4BD300434CC7 /* Home */,\n\t\t\t\tCF395E2120BD4BD300434CC7 /* User */,\n\t\t\t\tCF395E2320BD4BD300434CC7 /* Main */,\n\t\t\t);\n\t\t\tpath = Classes;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tCF395E1E20BD4BD300434CC7 /* Home */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tCF395E1F20BD4BD300434CC7 /* ViewController.swift */,\n\t\t\t\tCF395E2020BD4BD300434CC7 /* Index */,\n\t\t\t);\n\t\t\tpath = Home;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tCF395E2020BD4BD300434CC7 /* Index */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tCF395E2D20BD4DE300434CC7 /* HomeViewController.swift */,\n\t\t\t);\n\t\t\tpath = Index;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tCF395E2120BD4BD300434CC7 /* User */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tCF395E2220BD4BD300434CC7 /* Index */,\n\t\t\t);\n\t\t\tpath = User;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tCF395E2220BD4BD300434CC7 /* Index */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tCF395E2F20BD4DF400434CC7 /* UserViewController.swift */,\n\t\t\t);\n\t\t\tpath = Index;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tCF395E2320BD4BD300434CC7 /* Main */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tCF395E2420BD4BD300434CC7 /* AppDelegate.swift */,\n\t\t\t\tCF395E2520BD4BD300434CC7 /* BBNavigation */,\n\t\t\t\tCF395E2620BD4BD300434CC7 /* BBTabBar */,\n\t\t\t);\n\t\t\tpath = Main;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tCF395E2520BD4BD300434CC7 /* BBNavigation */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tCF395E2B20BD4DC400434CC7 /* BBNavigationController.swift */,\n\t\t\t);\n\t\t\tpath = BBNavigation;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tCF395E2620BD4BD300434CC7 /* BBTabBar */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tCF395E2920BD4C5800434CC7 /* BBTabBarController.swift */,\n\t\t\t);\n\t\t\tpath = BBTabBar;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tCF73731220B5592A00BBE7AC /* BBGestureBack_SysFull_oc */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tCF73734320B559D200BBE7AC /* Classes */,\n\t\t\t\tCF73731C20B5592C00BBE7AC /* Assets.xcassets */,\n\t\t\t\tCF73731E20B5592C00BBE7AC /* LaunchScreen.storyboard */,\n\t\t\t\tCF73732120B5592C00BBE7AC /* Info.plist */,\n\t\t\t\tCF73732220B5592C00BBE7AC /* main.m */,\n\t\t\t);\n\t\t\tpath = BBGestureBack_SysFull_oc;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tCF73734320B559D200BBE7AC /* Classes */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tCF73734420B559D200BBE7AC /* Home */,\n\t\t\t\tCF73734820B559D200BBE7AC /* User */,\n\t\t\t\tCF73734920B559D200BBE7AC /* Main */,\n\t\t\t);\n\t\t\tpath = Classes;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tCF73734420B559D200BBE7AC /* Home */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tCF73734620B559D200BBE7AC /* Index */,\n\t\t\t\tCF73734720B559D200BBE7AC /* ViewController.h */,\n\t\t\t\tCF73734520B559D200BBE7AC /* ViewController.m */,\n\t\t\t);\n\t\t\tpath = Home;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tCF73734620B559D200BBE7AC /* Index */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tCF73735620B55D0B00BBE7AC /* HomeViewController.h */,\n\t\t\t\tCF73735720B55D0B00BBE7AC /* HomeViewController.m */,\n\t\t\t);\n\t\t\tpath = Index;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tCF73734820B559D200BBE7AC /* User */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tCF73735920B55D1F00BBE7AC /* Index */,\n\t\t\t);\n\t\t\tpath = User;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tCF73734920B559D200BBE7AC /* Main */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tCF73735220B55C7200BBE7AC /* BBTabBar */,\n\t\t\t\tCF73734E20B55A9B00BBE7AC /* BBNavigation */,\n\t\t\t\tCF73734A20B559D200BBE7AC /* AppDelegate.h */,\n\t\t\t\tCF73734B20B559D200BBE7AC /* AppDelegate.m */,\n\t\t\t);\n\t\t\tpath = Main;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tCF73734E20B55A9B00BBE7AC /* BBNavigation */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tCF73734F20B55B0D00BBE7AC /* BBNavigationController.h */,\n\t\t\t\tCF73735020B55B0D00BBE7AC /* BBNavigationController.m */,\n\t\t\t);\n\t\t\tpath = BBNavigation;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tCF73735220B55C7200BBE7AC /* BBTabBar */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tCF73735320B55CA400BBE7AC /* BBTabBarController.h */,\n\t\t\t\tCF73735420B55CA400BBE7AC /* BBTabBarController.m */,\n\t\t\t);\n\t\t\tpath = BBTabBar;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tCF73735920B55D1F00BBE7AC /* Index */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tCF73735A20B55D3300BBE7AC /* UserViewController.h */,\n\t\t\t\tCF73735B20B55D3300BBE7AC /* UserViewController.m */,\n\t\t\t);\n\t\t\tpath = Index;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tCF808DEE22520DE3008F9500 /* BBUserGuider */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tCF808DEF22520E6A008F9500 /* BBUserGuiderController.h */,\n\t\t\t\tCF808DF022520E6A008F9500 /* BBUserGuiderController.m */,\n\t\t\t);\n\t\t\tpath = BBUserGuider;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tCF9B76522252F39D00E6031F /* Resource */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tCF9B76532252F3C100E6031F /* BBUserGuider.bundle */,\n\t\t\t);\n\t\t\tpath = Resource;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tCF9B765522533C2C00E6031F /* BBUserGuider */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tCF9B765622533D0B00E6031F /* BBUserGuiderController.swift */,\n\t\t\t);\n\t\t\tpath = BBUserGuider;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tCF9B765822534ABF00E6031F /* Resource */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tCF9B765922534ABF00E6031F /* BBUserGuider.bundle */,\n\t\t\t);\n\t\t\tpath = Resource;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tCFD0E96C207A621C00E58465 /* BBGestureBack_Full_swift */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tCFD0E999207A67DA00E58465 /* Classes */,\n\t\t\t\tCFD0E974207A621C00E58465 /* Assets.xcassets */,\n\t\t\t\tCFD0E976207A621C00E58465 /* LaunchScreen.storyboard */,\n\t\t\t\tCFD0E979207A621C00E58465 /* Info.plist */,\n\t\t\t);\n\t\t\tpath = BBGestureBack_Full_swift;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tCFD0E999207A67DA00E58465 /* Classes */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tCF9B765822534ABF00E6031F /* Resource */,\n\t\t\t\tCFD0E99A207A67DA00E58465 /* Home */,\n\t\t\t\tCFD0E99C207A67DA00E58465 /* User */,\n\t\t\t\tCFD0E99E207A67DA00E58465 /* Main */,\n\t\t\t);\n\t\t\tpath = Classes;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tCFD0E99A207A67DA00E58465 /* Home */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tCF9A6C06207C9DE3004DD232 /* ViewController.swift */,\n\t\t\t\tCFD0E9A1207BBA2600E58465 /* Index */,\n\t\t\t);\n\t\t\tpath = Home;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tCFD0E99C207A67DA00E58465 /* User */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tCFD0E9A4207BBA9000E58465 /* Index */,\n\t\t\t);\n\t\t\tpath = User;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tCFD0E99E207A67DA00E58465 /* Main */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tCFD0E9AA207BBB3C00E58465 /* AppDelegate.swift */,\n\t\t\t\tCF9B765522533C2C00E6031F /* BBUserGuider */,\n\t\t\t\tCFD0E9A9207BBAF300E58465 /* BBGestureBack */,\n\t\t\t\tCFD0E9A7207BBAF300E58465 /* BBNavigation */,\n\t\t\t\tCFD0E9A8207BBAF300E58465 /* BBTabBar */,\n\t\t\t);\n\t\t\tpath = Main;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tCFD0E9A1207BBA2600E58465 /* Index */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tCFD0E9A2207BBA5000E58465 /* HomeViewController.swift */,\n\t\t\t);\n\t\t\tpath = Index;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tCFD0E9A4207BBA9000E58465 /* Index */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tCFD0E9A5207BBAA200E58465 /* UserViewController.swift */,\n\t\t\t);\n\t\t\tpath = Index;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tCFD0E9A7207BBAF300E58465 /* BBNavigation */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tCFD0E9AE207BBCD800E58465 /* BBNavigationController.swift */,\n\t\t\t);\n\t\t\tpath = BBNavigation;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tCFD0E9A8207BBAF300E58465 /* BBTabBar */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tCFD0E9AC207BBC9A00E58465 /* BBTabBarController.swift */,\n\t\t\t);\n\t\t\tpath = BBTabBar;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tCFD0E9A9207BBAF300E58465 /* BBGestureBack */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tCF9A6C0A207CA005004DD232 /* BBGestureBackConst.swift */,\n\t\t\t\tCFD0E9B0207BBD1E00E58465 /* BBGestureBaseController.swift */,\n\t\t\t);\n\t\t\tpath = BBGestureBack;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n/* End PBXGroup section */\n\n/* Begin PBXNativeTarget section */\n\t\tCEDECB8E205CC3CD00C08340 /* BBGestureBack_Full_oc */ = {\n\t\t\tisa = PBXNativeTarget;\n\t\t\tbuildConfigurationList = CEDECBBB205CC3CD00C08340 /* Build configuration list for PBXNativeTarget \"BBGestureBack_Full_oc\" */;\n\t\t\tbuildPhases = (\n\t\t\t\tCEDECB8B205CC3CD00C08340 /* Sources */,\n\t\t\t\tCEDECB8C205CC3CD00C08340 /* Frameworks */,\n\t\t\t\tCEDECB8D205CC3CD00C08340 /* Resources */,\n\t\t\t);\n\t\t\tbuildRules = (\n\t\t\t);\n\t\t\tdependencies = (\n\t\t\t);\n\t\t\tname = BBGestureBack_Full_oc;\n\t\t\tproductName = BBGestureBack;\n\t\t\tproductReference = CEDECB8F205CC3CD00C08340 /* BBGestureBack_Full_oc.app */;\n\t\t\tproductType = \"com.apple.product-type.application\";\n\t\t};\n\t\tCF395E0920BD496B00434CC7 /* BBGestureBack_SysFull_swift */ = {\n\t\t\tisa = PBXNativeTarget;\n\t\t\tbuildConfigurationList = CF395E1920BD496B00434CC7 /* Build configuration list for PBXNativeTarget \"BBGestureBack_SysFull_swift\" */;\n\t\t\tbuildPhases = (\n\t\t\t\tCF395E0620BD496B00434CC7 /* Sources */,\n\t\t\t\tCF395E0720BD496B00434CC7 /* Frameworks */,\n\t\t\t\tCF395E0820BD496B00434CC7 /* Resources */,\n\t\t\t);\n\t\t\tbuildRules = (\n\t\t\t);\n\t\t\tdependencies = (\n\t\t\t);\n\t\t\tname = BBGestureBack_SysFull_swift;\n\t\t\tproductName = BBGestureBack_SysFull_swift;\n\t\t\tproductReference = CF395E0A20BD496B00434CC7 /* BBGestureBack_SysFull_swift.app */;\n\t\t\tproductType = \"com.apple.product-type.application\";\n\t\t};\n\t\tCF73731020B5592A00BBE7AC /* BBGestureBack_SysFull_oc */ = {\n\t\t\tisa = PBXNativeTarget;\n\t\t\tbuildConfigurationList = CF73734020B5592C00BBE7AC /* Build configuration list for PBXNativeTarget \"BBGestureBack_SysFull_oc\" */;\n\t\t\tbuildPhases = (\n\t\t\t\tCF73730D20B5592A00BBE7AC /* Sources */,\n\t\t\t\tCF73730E20B5592A00BBE7AC /* Frameworks */,\n\t\t\t\tCF73730F20B5592A00BBE7AC /* Resources */,\n\t\t\t);\n\t\t\tbuildRules = (\n\t\t\t);\n\t\t\tdependencies = (\n\t\t\t);\n\t\t\tname = BBGestureBack_SysFull_oc;\n\t\t\tproductName = BBGestureBack_SysFull_oc;\n\t\t\tproductReference = CF73731120B5592A00BBE7AC /* BBGestureBack_SysFull_oc.app */;\n\t\t\tproductType = \"com.apple.product-type.application\";\n\t\t};\n\t\tCFD0E96A207A621C00E58465 /* BBGestureBack_Full_swift */ = {\n\t\t\tisa = PBXNativeTarget;\n\t\t\tbuildConfigurationList = CFD0E996207A621D00E58465 /* Build configuration list for PBXNativeTarget \"BBGestureBack_Full_swift\" */;\n\t\t\tbuildPhases = (\n\t\t\t\tCFD0E967207A621C00E58465 /* Sources */,\n\t\t\t\tCFD0E968207A621C00E58465 /* Frameworks */,\n\t\t\t\tCFD0E969207A621C00E58465 /* Resources */,\n\t\t\t);\n\t\t\tbuildRules = (\n\t\t\t);\n\t\t\tdependencies = (\n\t\t\t);\n\t\t\tname = BBGestureBack_Full_swift;\n\t\t\tproductName = BBGestureBack_Full_swift;\n\t\t\tproductReference = CFD0E96B207A621C00E58465 /* BBGestureBack_Full_swift.app */;\n\t\t\tproductType = \"com.apple.product-type.application\";\n\t\t};\n/* End PBXNativeTarget section */\n\n/* Begin PBXProject section */\n\t\tCEDECB87205CC3CD00C08340 /* Project object */ = {\n\t\t\tisa = PBXProject;\n\t\t\tattributes = {\n\t\t\t\tLastSwiftUpdateCheck = 0930;\n\t\t\t\tLastUpgradeCheck = 0920;\n\t\t\t\tORGANIZATIONNAME = Bonway;\n\t\t\t\tTargetAttributes = {\n\t\t\t\t\tCEDECB8E205CC3CD00C08340 = {\n\t\t\t\t\t\tCreatedOnToolsVersion = 9.2;\n\t\t\t\t\t\tProvisioningStyle = Automatic;\n\t\t\t\t\t};\n\t\t\t\t\tCF395E0920BD496B00434CC7 = {\n\t\t\t\t\t\tCreatedOnToolsVersion = 9.3;\n\t\t\t\t\t\tProvisioningStyle = Automatic;\n\t\t\t\t\t};\n\t\t\t\t\tCF73731020B5592A00BBE7AC = {\n\t\t\t\t\t\tCreatedOnToolsVersion = 9.3;\n\t\t\t\t\t\tProvisioningStyle = Automatic;\n\t\t\t\t\t};\n\t\t\t\t\tCFD0E96A207A621C00E58465 = {\n\t\t\t\t\t\tCreatedOnToolsVersion = 9.2;\n\t\t\t\t\t\tProvisioningStyle = Automatic;\n\t\t\t\t\t};\n\t\t\t\t};\n\t\t\t};\n\t\t\tbuildConfigurationList = CEDECB8A205CC3CD00C08340 /* Build configuration list for PBXProject \"BBGestureBack\" */;\n\t\t\tcompatibilityVersion = \"Xcode 8.0\";\n\t\t\tdevelopmentRegion = en;\n\t\t\thasScannedForEncodings = 0;\n\t\t\tknownRegions = (\n\t\t\t\ten,\n\t\t\t\tBase,\n\t\t\t);\n\t\t\tmainGroup = CEDECB86205CC3CD00C08340;\n\t\t\tproductRefGroup = CEDECB90205CC3CD00C08340 /* Products */;\n\t\t\tprojectDirPath = \"\";\n\t\t\tprojectRoot = \"\";\n\t\t\ttargets = (\n\t\t\t\tCEDECB8E205CC3CD00C08340 /* BBGestureBack_Full_oc */,\n\t\t\t\tCFD0E96A207A621C00E58465 /* BBGestureBack_Full_swift */,\n\t\t\t\tCF73731020B5592A00BBE7AC /* BBGestureBack_SysFull_oc */,\n\t\t\t\tCF395E0920BD496B00434CC7 /* BBGestureBack_SysFull_swift */,\n\t\t\t);\n\t\t};\n/* End PBXProject section */\n\n/* Begin PBXResourcesBuildPhase section */\n\t\tCEDECB8D205CC3CD00C08340 /* Resources */ = {\n\t\t\tisa = PBXResourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tCEDECB9F205CC3CD00C08340 /* LaunchScreen.storyboard in Resources */,\n\t\t\t\tCF9B76542252F3C100E6031F /* BBUserGuider.bundle in Resources */,\n\t\t\t\tCEDECB9C205CC3CD00C08340 /* Assets.xcassets in Resources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\tCF395E0820BD496B00434CC7 /* Resources */ = {\n\t\t\tisa = PBXResourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tCF395E1720BD496B00434CC7 /* LaunchScreen.storyboard in Resources */,\n\t\t\t\tCF395E1420BD496B00434CC7 /* Assets.xcassets in Resources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\tCF73730F20B5592A00BBE7AC /* Resources */ = {\n\t\t\tisa = PBXResourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tCF73732020B5592C00BBE7AC /* LaunchScreen.storyboard in Resources */,\n\t\t\t\tCF73731D20B5592C00BBE7AC /* Assets.xcassets in Resources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\tCFD0E969207A621C00E58465 /* Resources */ = {\n\t\t\tisa = PBXResourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tCFD0E978207A621C00E58465 /* LaunchScreen.storyboard in Resources */,\n\t\t\t\tCF9B765A22534ABF00E6031F /* BBUserGuider.bundle in Resources */,\n\t\t\t\tCFD0E975207A621C00E58465 /* Assets.xcassets in Resources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXResourcesBuildPhase section */\n\n/* Begin PBXSourcesBuildPhase section */\n\t\tCEDECB8B205CC3CD00C08340 /* Sources */ = {\n\t\t\tisa = PBXSourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tCEDECBE0205CC94100C08340 /* UserViewController.m in Sources */,\n\t\t\t\tCEDECBCD205CC54D00C08340 /* ViewController.m in Sources */,\n\t\t\t\tCF808DF122520E6A008F9500 /* BBUserGuiderController.m in Sources */,\n\t\t\t\tCEDECBA2205CC3CD00C08340 /* main.m in Sources */,\n\t\t\t\tCEDECBCE205CC54D00C08340 /* AppDelegate.m in Sources */,\n\t\t\t\tCEDECBD7205CC82800C08340 /* HomeViewController.m in Sources */,\n\t\t\t\tCEC3BBC8206354CE0003CF06 /* BBGestureBackConst.m in Sources */,\n\t\t\t\tCEDECBD2205CC76800C08340 /* BBTabBarController.m in Sources */,\n\t\t\t\tCEDECBE3205CCA4100C08340 /* BBGestureBaseController.m in Sources */,\n\t\t\t\tCEDECBDB205CC8BC00C08340 /* BBNavigationController.m in Sources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\tCF395E0620BD496B00434CC7 /* Sources */ = {\n\t\t\tisa = PBXSourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tCF395E2E20BD4DE300434CC7 /* HomeViewController.swift in Sources */,\n\t\t\t\tCF395E3020BD4DF400434CC7 /* UserViewController.swift in Sources */,\n\t\t\t\tCF395E2820BD4BD300434CC7 /* AppDelegate.swift in Sources */,\n\t\t\t\tCF395E2720BD4BD300434CC7 /* ViewController.swift in Sources */,\n\t\t\t\tCF395E2A20BD4C5800434CC7 /* BBTabBarController.swift in Sources */,\n\t\t\t\tCF395E2C20BD4DC400434CC7 /* BBNavigationController.swift in Sources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\tCF73730D20B5592A00BBE7AC /* Sources */ = {\n\t\t\tisa = PBXSourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tCF73735C20B55D3300BBE7AC /* UserViewController.m in Sources */,\n\t\t\t\tCF73734C20B559D200BBE7AC /* ViewController.m in Sources */,\n\t\t\t\tCF73732320B5592C00BBE7AC /* main.m in Sources */,\n\t\t\t\tCF73734D20B559D200BBE7AC /* AppDelegate.m in Sources */,\n\t\t\t\tCF73735120B55B0D00BBE7AC /* BBNavigationController.m in Sources */,\n\t\t\t\tCF73735520B55CA400BBE7AC /* BBTabBarController.m in Sources */,\n\t\t\t\tCF73735820B55D0B00BBE7AC /* HomeViewController.m in Sources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\tCFD0E967207A621C00E58465 /* Sources */ = {\n\t\t\tisa = PBXSourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tCFD0E9AB207BBB3C00E58465 /* AppDelegate.swift in Sources */,\n\t\t\t\tCF9B765722533D0B00E6031F /* BBUserGuiderController.swift in Sources */,\n\t\t\t\tCFD0E9B1207BBD1E00E58465 /* BBGestureBaseController.swift in Sources */,\n\t\t\t\tCFD0E9AF207BBCD800E58465 /* BBNavigationController.swift in Sources */,\n\t\t\t\tCFD0E9AD207BBC9A00E58465 /* BBTabBarController.swift in Sources */,\n\t\t\t\tCF9A6C07207C9DE3004DD232 /* ViewController.swift in Sources */,\n\t\t\t\tCFD0E9A6207BBAA200E58465 /* UserViewController.swift in Sources */,\n\t\t\t\tCF9A6C0B207CA005004DD232 /* BBGestureBackConst.swift in Sources */,\n\t\t\t\tCFD0E9A3207BBA5000E58465 /* HomeViewController.swift in Sources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXSourcesBuildPhase section */\n\n/* Begin PBXVariantGroup section */\n\t\tCEDECB9D205CC3CD00C08340 /* LaunchScreen.storyboard */ = {\n\t\t\tisa = PBXVariantGroup;\n\t\t\tchildren = (\n\t\t\t\tCEDECB9E205CC3CD00C08340 /* Base */,\n\t\t\t);\n\t\t\tname = LaunchScreen.storyboard;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tCF395E1520BD496B00434CC7 /* LaunchScreen.storyboard */ = {\n\t\t\tisa = PBXVariantGroup;\n\t\t\tchildren = (\n\t\t\t\tCF395E1620BD496B00434CC7 /* Base */,\n\t\t\t);\n\t\t\tname = LaunchScreen.storyboard;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tCF73731E20B5592C00BBE7AC /* LaunchScreen.storyboard */ = {\n\t\t\tisa = PBXVariantGroup;\n\t\t\tchildren = (\n\t\t\t\tCF73731F20B5592C00BBE7AC /* Base */,\n\t\t\t);\n\t\t\tname = LaunchScreen.storyboard;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tCFD0E976207A621C00E58465 /* LaunchScreen.storyboard */ = {\n\t\t\tisa = PBXVariantGroup;\n\t\t\tchildren = (\n\t\t\t\tCFD0E977207A621C00E58465 /* Base */,\n\t\t\t);\n\t\t\tname = LaunchScreen.storyboard;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n/* End PBXVariantGroup section */\n\n/* Begin XCBuildConfiguration section */\n\t\tCEDECBB9205CC3CD00C08340 /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_SEARCH_USER_PATHS = NO;\n\t\t\t\tCLANG_ANALYZER_NONNULL = YES;\n\t\t\t\tCLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;\n\t\t\t\tCLANG_CXX_LANGUAGE_STANDARD = \"gnu++14\";\n\t\t\t\tCLANG_CXX_LIBRARY = \"libc++\";\n\t\t\t\tCLANG_ENABLE_MODULES = YES;\n\t\t\t\tCLANG_ENABLE_OBJC_ARC = YES;\n\t\t\t\tCLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;\n\t\t\t\tCLANG_WARN_BOOL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_COMMA = YES;\n\t\t\t\tCLANG_WARN_CONSTANT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;\n\t\t\t\tCLANG_WARN_DOCUMENTATION_COMMENTS = YES;\n\t\t\t\tCLANG_WARN_EMPTY_BODY = YES;\n\t\t\t\tCLANG_WARN_ENUM_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_INFINITE_RECURSION = YES;\n\t\t\t\tCLANG_WARN_INT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_LITERAL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;\n\t\t\t\tCLANG_WARN_RANGE_LOOP_ANALYSIS = YES;\n\t\t\t\tCLANG_WARN_STRICT_PROTOTYPES = YES;\n\t\t\t\tCLANG_WARN_SUSPICIOUS_MOVE = YES;\n\t\t\t\tCLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;\n\t\t\t\tCLANG_WARN_UNREACHABLE_CODE = YES;\n\t\t\t\tCLANG_WARN__DUPLICATE_METHOD_MATCH = YES;\n\t\t\t\tCODE_SIGN_IDENTITY = \"iPhone Developer\";\n\t\t\t\tCOPY_PHASE_STRIP = NO;\n\t\t\t\tDEBUG_INFORMATION_FORMAT = dwarf;\n\t\t\t\tENABLE_STRICT_OBJC_MSGSEND = YES;\n\t\t\t\tENABLE_TESTABILITY = YES;\n\t\t\t\tGCC_C_LANGUAGE_STANDARD = gnu11;\n\t\t\t\tGCC_DYNAMIC_NO_PIC = NO;\n\t\t\t\tGCC_NO_COMMON_BLOCKS = YES;\n\t\t\t\tGCC_OPTIMIZATION_LEVEL = 0;\n\t\t\t\tGCC_PREPROCESSOR_DEFINITIONS = (\n\t\t\t\t\t\"DEBUG=1\",\n\t\t\t\t\t\"$(inherited)\",\n\t\t\t\t);\n\t\t\t\tGCC_WARN_64_TO_32_BIT_CONVERSION = YES;\n\t\t\t\tGCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;\n\t\t\t\tGCC_WARN_UNDECLARED_SELECTOR = YES;\n\t\t\t\tGCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;\n\t\t\t\tGCC_WARN_UNUSED_FUNCTION = YES;\n\t\t\t\tGCC_WARN_UNUSED_VARIABLE = YES;\n\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 11.2;\n\t\t\t\tMTL_ENABLE_DEBUG_INFO = YES;\n\t\t\t\tONLY_ACTIVE_ARCH = YES;\n\t\t\t\tSDKROOT = iphoneos;\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\tCEDECBBA205CC3CD00C08340 /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_SEARCH_USER_PATHS = NO;\n\t\t\t\tCLANG_ANALYZER_NONNULL = YES;\n\t\t\t\tCLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;\n\t\t\t\tCLANG_CXX_LANGUAGE_STANDARD = \"gnu++14\";\n\t\t\t\tCLANG_CXX_LIBRARY = \"libc++\";\n\t\t\t\tCLANG_ENABLE_MODULES = YES;\n\t\t\t\tCLANG_ENABLE_OBJC_ARC = YES;\n\t\t\t\tCLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;\n\t\t\t\tCLANG_WARN_BOOL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_COMMA = YES;\n\t\t\t\tCLANG_WARN_CONSTANT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;\n\t\t\t\tCLANG_WARN_DOCUMENTATION_COMMENTS = YES;\n\t\t\t\tCLANG_WARN_EMPTY_BODY = YES;\n\t\t\t\tCLANG_WARN_ENUM_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_INFINITE_RECURSION = YES;\n\t\t\t\tCLANG_WARN_INT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_LITERAL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;\n\t\t\t\tCLANG_WARN_RANGE_LOOP_ANALYSIS = YES;\n\t\t\t\tCLANG_WARN_STRICT_PROTOTYPES = YES;\n\t\t\t\tCLANG_WARN_SUSPICIOUS_MOVE = YES;\n\t\t\t\tCLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;\n\t\t\t\tCLANG_WARN_UNREACHABLE_CODE = YES;\n\t\t\t\tCLANG_WARN__DUPLICATE_METHOD_MATCH = YES;\n\t\t\t\tCODE_SIGN_IDENTITY = \"iPhone Developer\";\n\t\t\t\tCOPY_PHASE_STRIP = NO;\n\t\t\t\tDEBUG_INFORMATION_FORMAT = \"dwarf-with-dsym\";\n\t\t\t\tENABLE_NS_ASSERTIONS = NO;\n\t\t\t\tENABLE_STRICT_OBJC_MSGSEND = YES;\n\t\t\t\tGCC_C_LANGUAGE_STANDARD = gnu11;\n\t\t\t\tGCC_NO_COMMON_BLOCKS = YES;\n\t\t\t\tGCC_WARN_64_TO_32_BIT_CONVERSION = YES;\n\t\t\t\tGCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;\n\t\t\t\tGCC_WARN_UNDECLARED_SELECTOR = YES;\n\t\t\t\tGCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;\n\t\t\t\tGCC_WARN_UNUSED_FUNCTION = YES;\n\t\t\t\tGCC_WARN_UNUSED_VARIABLE = YES;\n\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 11.2;\n\t\t\t\tMTL_ENABLE_DEBUG_INFO = NO;\n\t\t\t\tSDKROOT = iphoneos;\n\t\t\t\tVALIDATE_PRODUCT = YES;\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n\t\tCEDECBBC205CC3CD00C08340 /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;\n\t\t\t\tCODE_SIGN_STYLE = Automatic;\n\t\t\t\tINFOPLIST_FILE = \"$(SRCROOT)/BBGestureBack_Full_oc/Info.plist\";\n\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 7.0;\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = \"$(inherited) @executable_path/Frameworks\";\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = Bonway.com.gestureBack;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tTARGETED_DEVICE_FAMILY = \"1,2\";\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\tCEDECBBD205CC3CD00C08340 /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;\n\t\t\t\tCODE_SIGN_STYLE = Automatic;\n\t\t\t\tINFOPLIST_FILE = \"$(SRCROOT)/BBGestureBack_Full_oc/Info.plist\";\n\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 7.0;\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = \"$(inherited) @executable_path/Frameworks\";\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = Bonway.com.gestureBack;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tTARGETED_DEVICE_FAMILY = \"1,2\";\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n\t\tCF395E1A20BD496B00434CC7 /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;\n\t\t\t\tCLANG_ENABLE_OBJC_WEAK = YES;\n\t\t\t\tCLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;\n\t\t\t\tCLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;\n\t\t\t\tCODE_SIGN_STYLE = Automatic;\n\t\t\t\tINFOPLIST_FILE = BBGestureBack_SysFull_swift/Info.plist;\n\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 11.3;\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = \"$(inherited) @executable_path/Frameworks\";\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = \"com.bonway.BBGestureBack-SysFull-swift\";\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;\n\t\t\t\tSWIFT_OPTIMIZATION_LEVEL = \"-Onone\";\n\t\t\t\tSWIFT_VERSION = 4.0;\n\t\t\t\tTARGETED_DEVICE_FAMILY = \"1,2\";\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\tCF395E1B20BD496B00434CC7 /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;\n\t\t\t\tCLANG_ENABLE_OBJC_WEAK = YES;\n\t\t\t\tCLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;\n\t\t\t\tCLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;\n\t\t\t\tCODE_SIGN_STYLE = Automatic;\n\t\t\t\tINFOPLIST_FILE = BBGestureBack_SysFull_swift/Info.plist;\n\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 11.3;\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = \"$(inherited) @executable_path/Frameworks\";\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = \"com.bonway.BBGestureBack-SysFull-swift\";\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSWIFT_OPTIMIZATION_LEVEL = \"-Owholemodule\";\n\t\t\t\tSWIFT_VERSION = 4.0;\n\t\t\t\tTARGETED_DEVICE_FAMILY = \"1,2\";\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n\t\tCF73733A20B5592C00BBE7AC /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;\n\t\t\t\tCLANG_ENABLE_OBJC_WEAK = YES;\n\t\t\t\tCLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;\n\t\t\t\tCLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;\n\t\t\t\tCODE_SIGN_STYLE = Automatic;\n\t\t\t\tDEVELOPMENT_TEAM = \"\";\n\t\t\t\tINFOPLIST_FILE = BBGestureBack_SysFull_oc/Info.plist;\n\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 7.0;\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = \"$(inherited) @executable_path/Frameworks\";\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = Bonway.com.gestureBack;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tTARGETED_DEVICE_FAMILY = \"1,2\";\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\tCF73733B20B5592C00BBE7AC /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;\n\t\t\t\tCLANG_ENABLE_OBJC_WEAK = YES;\n\t\t\t\tCLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;\n\t\t\t\tCLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;\n\t\t\t\tCODE_SIGN_STYLE = Automatic;\n\t\t\t\tDEVELOPMENT_TEAM = \"\";\n\t\t\t\tINFOPLIST_FILE = BBGestureBack_SysFull_oc/Info.plist;\n\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 7.0;\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = \"$(inherited) @executable_path/Frameworks\";\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = Bonway.com.gestureBack;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tTARGETED_DEVICE_FAMILY = \"1,2\";\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n\t\tCFD0E990207A621D00E58465 /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;\n\t\t\t\tCODE_SIGN_STYLE = Automatic;\n\t\t\t\tINFOPLIST_FILE = BBGestureBack_Full_swift/Info.plist;\n\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 7.0;\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = \"$(inherited) @executable_path/Frameworks\";\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = Bonway.com.gestureBack;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;\n\t\t\t\tSWIFT_OPTIMIZATION_LEVEL = \"-Onone\";\n\t\t\t\tSWIFT_VERSION = 4.0;\n\t\t\t\tTARGETED_DEVICE_FAMILY = \"1,2\";\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\tCFD0E991207A621D00E58465 /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;\n\t\t\t\tCODE_SIGN_STYLE = Automatic;\n\t\t\t\tINFOPLIST_FILE = BBGestureBack_Full_swift/Info.plist;\n\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 7.0;\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = \"$(inherited) @executable_path/Frameworks\";\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = Bonway.com.gestureBack;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSWIFT_OPTIMIZATION_LEVEL = \"-Owholemodule\";\n\t\t\t\tSWIFT_VERSION = 4.0;\n\t\t\t\tTARGETED_DEVICE_FAMILY = \"1,2\";\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n/* End XCBuildConfiguration section */\n\n/* Begin XCConfigurationList section */\n\t\tCEDECB8A205CC3CD00C08340 /* Build configuration list for PBXProject \"BBGestureBack\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\tCEDECBB9205CC3CD00C08340 /* Debug */,\n\t\t\t\tCEDECBBA205CC3CD00C08340 /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n\t\tCEDECBBB205CC3CD00C08340 /* Build configuration list for PBXNativeTarget \"BBGestureBack_Full_oc\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\tCEDECBBC205CC3CD00C08340 /* Debug */,\n\t\t\t\tCEDECBBD205CC3CD00C08340 /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n\t\tCF395E1920BD496B00434CC7 /* Build configuration list for PBXNativeTarget \"BBGestureBack_SysFull_swift\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\tCF395E1A20BD496B00434CC7 /* Debug */,\n\t\t\t\tCF395E1B20BD496B00434CC7 /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n\t\tCF73734020B5592C00BBE7AC /* Build configuration list for PBXNativeTarget \"BBGestureBack_SysFull_oc\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\tCF73733A20B5592C00BBE7AC /* Debug */,\n\t\t\t\tCF73733B20B5592C00BBE7AC /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n\t\tCFD0E996207A621D00E58465 /* Build configuration list for PBXNativeTarget \"BBGestureBack_Full_swift\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\tCFD0E990207A621D00E58465 /* Debug */,\n\t\t\t\tCFD0E991207A621D00E58465 /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n/* End XCConfigurationList section */\n\t};\n\trootObject = CEDECB87205CC3CD00C08340 /* Project object */;\n}\n"
  },
  {
    "path": "BBGestureBack.xcodeproj/project.xcworkspace/contents.xcworkspacedata",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Workspace\n   version = \"1.0\">\n   <FileRef\n      location = \"self:BBGestureBack.xcodeproj\">\n   </FileRef>\n</Workspace>\n"
  },
  {
    "path": "BBGestureBack.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>IDEDidComputeMac32BitWarning</key>\n\t<true/>\n</dict>\n</plist>\n"
  },
  {
    "path": "BBGestureBack.xcodeproj/xcuserdata/Bonway.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Bucket\n   uuid = \"D758E668-F67A-42BE-8ACE-58488819D3D8\"\n   type = \"1\"\n   version = \"2.0\">\n</Bucket>\n"
  },
  {
    "path": "BBGestureBack.xcodeproj/xcuserdata/Bonway.xcuserdatad/xcschemes/BBGestureBack_Full_oc.xcscheme",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Scheme\n   LastUpgradeVersion = \"0920\"\n   version = \"1.3\">\n   <BuildAction\n      parallelizeBuildables = \"YES\"\n      buildImplicitDependencies = \"YES\">\n      <BuildActionEntries>\n         <BuildActionEntry\n            buildForTesting = \"YES\"\n            buildForRunning = \"YES\"\n            buildForProfiling = \"YES\"\n            buildForArchiving = \"YES\"\n            buildForAnalyzing = \"YES\">\n            <BuildableReference\n               BuildableIdentifier = \"primary\"\n               BlueprintIdentifier = \"CEDECB8E205CC3CD00C08340\"\n               BuildableName = \"BBGestureBack_Full_oc.app\"\n               BlueprintName = \"BBGestureBack_Full_oc\"\n               ReferencedContainer = \"container:BBGestureBack.xcodeproj\">\n            </BuildableReference>\n         </BuildActionEntry>\n         <BuildActionEntry\n            buildForTesting = \"NO\"\n            buildForRunning = \"NO\"\n            buildForProfiling = \"NO\"\n            buildForArchiving = \"NO\"\n            buildForAnalyzing = \"NO\">\n            <BuildableReference\n               BuildableIdentifier = \"primary\"\n               BlueprintIdentifier = \"CEDECBA6205CC3CD00C08340\"\n               BuildableName = \"BBGestureBackTests.xctest\"\n               BlueprintName = \"BBGestureBackTests\"\n               ReferencedContainer = \"container:BBGestureBack.xcodeproj\">\n            </BuildableReference>\n         </BuildActionEntry>\n         <BuildActionEntry\n            buildForTesting = \"NO\"\n            buildForRunning = \"NO\"\n            buildForProfiling = \"NO\"\n            buildForArchiving = \"NO\"\n            buildForAnalyzing = \"NO\">\n            <BuildableReference\n               BuildableIdentifier = \"primary\"\n               BlueprintIdentifier = \"CEDECBB1205CC3CD00C08340\"\n               BuildableName = \"BBGestureBackUITests.xctest\"\n               BlueprintName = \"BBGestureBackUITests\"\n               ReferencedContainer = \"container:BBGestureBack.xcodeproj\">\n            </BuildableReference>\n         </BuildActionEntry>\n      </BuildActionEntries>\n   </BuildAction>\n   <TestAction\n      buildConfiguration = \"Debug\"\n      selectedDebuggerIdentifier = \"Xcode.DebuggerFoundation.Debugger.LLDB\"\n      selectedLauncherIdentifier = \"Xcode.DebuggerFoundation.Launcher.LLDB\"\n      shouldUseLaunchSchemeArgsEnv = \"YES\">\n      <Testables>\n      </Testables>\n      <MacroExpansion>\n         <BuildableReference\n            BuildableIdentifier = \"primary\"\n            BlueprintIdentifier = \"CEDECB8E205CC3CD00C08340\"\n            BuildableName = \"BBGestureBack_Full_oc.app\"\n            BlueprintName = \"BBGestureBack_Full_oc\"\n            ReferencedContainer = \"container:BBGestureBack.xcodeproj\">\n         </BuildableReference>\n      </MacroExpansion>\n      <AdditionalOptions>\n      </AdditionalOptions>\n   </TestAction>\n   <LaunchAction\n      buildConfiguration = \"Debug\"\n      selectedDebuggerIdentifier = \"Xcode.DebuggerFoundation.Debugger.LLDB\"\n      selectedLauncherIdentifier = \"Xcode.DebuggerFoundation.Launcher.LLDB\"\n      launchStyle = \"0\"\n      useCustomWorkingDirectory = \"NO\"\n      ignoresPersistentStateOnLaunch = \"NO\"\n      debugDocumentVersioning = \"YES\"\n      debugServiceExtension = \"internal\"\n      allowLocationSimulation = \"YES\">\n      <BuildableProductRunnable\n         runnableDebuggingMode = \"0\">\n         <BuildableReference\n            BuildableIdentifier = \"primary\"\n            BlueprintIdentifier = \"CEDECB8E205CC3CD00C08340\"\n            BuildableName = \"BBGestureBack_Full_oc.app\"\n            BlueprintName = \"BBGestureBack_Full_oc\"\n            ReferencedContainer = \"container:BBGestureBack.xcodeproj\">\n         </BuildableReference>\n      </BuildableProductRunnable>\n      <AdditionalOptions>\n      </AdditionalOptions>\n   </LaunchAction>\n   <ProfileAction\n      buildConfiguration = \"Release\"\n      shouldUseLaunchSchemeArgsEnv = \"YES\"\n      savedToolIdentifier = \"\"\n      useCustomWorkingDirectory = \"NO\"\n      debugDocumentVersioning = \"YES\">\n      <BuildableProductRunnable\n         runnableDebuggingMode = \"0\">\n         <BuildableReference\n            BuildableIdentifier = \"primary\"\n            BlueprintIdentifier = \"CEDECB8E205CC3CD00C08340\"\n            BuildableName = \"BBGestureBack_Full_oc.app\"\n            BlueprintName = \"BBGestureBack_Full_oc\"\n            ReferencedContainer = \"container:BBGestureBack.xcodeproj\">\n         </BuildableReference>\n      </BuildableProductRunnable>\n   </ProfileAction>\n   <AnalyzeAction\n      buildConfiguration = \"Debug\">\n   </AnalyzeAction>\n   <ArchiveAction\n      buildConfiguration = \"Release\"\n      revealArchiveInOrganizer = \"YES\">\n   </ArchiveAction>\n</Scheme>\n"
  },
  {
    "path": "BBGestureBack.xcodeproj/xcuserdata/Bonway.xcuserdatad/xcschemes/BBGestureBack_Full_swift.xcscheme",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Scheme\n   LastUpgradeVersion = \"0930\"\n   version = \"1.3\">\n   <BuildAction\n      parallelizeBuildables = \"YES\"\n      buildImplicitDependencies = \"YES\">\n      <BuildActionEntries>\n         <BuildActionEntry\n            buildForTesting = \"YES\"\n            buildForRunning = \"YES\"\n            buildForProfiling = \"YES\"\n            buildForArchiving = \"YES\"\n            buildForAnalyzing = \"YES\">\n            <BuildableReference\n               BuildableIdentifier = \"primary\"\n               BlueprintIdentifier = \"CFD0E96A207A621C00E58465\"\n               BuildableName = \"BBGestureBack_Full_swift.app\"\n               BlueprintName = \"BBGestureBack_Full_swift\"\n               ReferencedContainer = \"container:BBGestureBack.xcodeproj\">\n            </BuildableReference>\n         </BuildActionEntry>\n      </BuildActionEntries>\n   </BuildAction>\n   <TestAction\n      buildConfiguration = \"Debug\"\n      selectedDebuggerIdentifier = \"Xcode.DebuggerFoundation.Debugger.LLDB\"\n      selectedLauncherIdentifier = \"Xcode.DebuggerFoundation.Launcher.LLDB\"\n      shouldUseLaunchSchemeArgsEnv = \"YES\">\n      <Testables>\n      </Testables>\n      <MacroExpansion>\n         <BuildableReference\n            BuildableIdentifier = \"primary\"\n            BlueprintIdentifier = \"CFD0E96A207A621C00E58465\"\n            BuildableName = \"BBGestureBack_Full_swift.app\"\n            BlueprintName = \"BBGestureBack_Full_swift\"\n            ReferencedContainer = \"container:BBGestureBack.xcodeproj\">\n         </BuildableReference>\n      </MacroExpansion>\n      <AdditionalOptions>\n      </AdditionalOptions>\n   </TestAction>\n   <LaunchAction\n      buildConfiguration = \"Debug\"\n      selectedDebuggerIdentifier = \"Xcode.DebuggerFoundation.Debugger.LLDB\"\n      selectedLauncherIdentifier = \"Xcode.DebuggerFoundation.Launcher.LLDB\"\n      launchStyle = \"0\"\n      useCustomWorkingDirectory = \"NO\"\n      ignoresPersistentStateOnLaunch = \"NO\"\n      debugDocumentVersioning = \"YES\"\n      debugServiceExtension = \"internal\"\n      allowLocationSimulation = \"YES\">\n      <BuildableProductRunnable\n         runnableDebuggingMode = \"0\">\n         <BuildableReference\n            BuildableIdentifier = \"primary\"\n            BlueprintIdentifier = \"CFD0E96A207A621C00E58465\"\n            BuildableName = \"BBGestureBack_Full_swift.app\"\n            BlueprintName = \"BBGestureBack_Full_swift\"\n            ReferencedContainer = \"container:BBGestureBack.xcodeproj\">\n         </BuildableReference>\n      </BuildableProductRunnable>\n      <AdditionalOptions>\n      </AdditionalOptions>\n   </LaunchAction>\n   <ProfileAction\n      buildConfiguration = \"Release\"\n      shouldUseLaunchSchemeArgsEnv = \"YES\"\n      savedToolIdentifier = \"\"\n      useCustomWorkingDirectory = \"NO\"\n      debugDocumentVersioning = \"YES\">\n      <BuildableProductRunnable\n         runnableDebuggingMode = \"0\">\n         <BuildableReference\n            BuildableIdentifier = \"primary\"\n            BlueprintIdentifier = \"CFD0E96A207A621C00E58465\"\n            BuildableName = \"BBGestureBack_Full_swift.app\"\n            BlueprintName = \"BBGestureBack_Full_swift\"\n            ReferencedContainer = \"container:BBGestureBack.xcodeproj\">\n         </BuildableReference>\n      </BuildableProductRunnable>\n   </ProfileAction>\n   <AnalyzeAction\n      buildConfiguration = \"Debug\">\n   </AnalyzeAction>\n   <ArchiveAction\n      buildConfiguration = \"Release\"\n      revealArchiveInOrganizer = \"YES\">\n   </ArchiveAction>\n</Scheme>\n"
  },
  {
    "path": "BBGestureBack.xcodeproj/xcuserdata/Bonway.xcuserdatad/xcschemes/BBGestureBack_SysFull_oc.xcscheme",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Scheme\n   LastUpgradeVersion = \"0930\"\n   version = \"1.3\">\n   <BuildAction\n      parallelizeBuildables = \"YES\"\n      buildImplicitDependencies = \"YES\">\n      <BuildActionEntries>\n         <BuildActionEntry\n            buildForTesting = \"YES\"\n            buildForRunning = \"YES\"\n            buildForProfiling = \"YES\"\n            buildForArchiving = \"YES\"\n            buildForAnalyzing = \"YES\">\n            <BuildableReference\n               BuildableIdentifier = \"primary\"\n               BlueprintIdentifier = \"CF73731020B5592A00BBE7AC\"\n               BuildableName = \"BBGestureBack_SysFull_oc.app\"\n               BlueprintName = \"BBGestureBack_SysFull_oc\"\n               ReferencedContainer = \"container:BBGestureBack.xcodeproj\">\n            </BuildableReference>\n         </BuildActionEntry>\n      </BuildActionEntries>\n   </BuildAction>\n   <TestAction\n      buildConfiguration = \"Debug\"\n      selectedDebuggerIdentifier = \"Xcode.DebuggerFoundation.Debugger.LLDB\"\n      selectedLauncherIdentifier = \"Xcode.DebuggerFoundation.Launcher.LLDB\"\n      shouldUseLaunchSchemeArgsEnv = \"YES\">\n      <Testables>\n      </Testables>\n      <MacroExpansion>\n         <BuildableReference\n            BuildableIdentifier = \"primary\"\n            BlueprintIdentifier = \"CF73731020B5592A00BBE7AC\"\n            BuildableName = \"BBGestureBack_SysFull_oc.app\"\n            BlueprintName = \"BBGestureBack_SysFull_oc\"\n            ReferencedContainer = \"container:BBGestureBack.xcodeproj\">\n         </BuildableReference>\n      </MacroExpansion>\n      <AdditionalOptions>\n      </AdditionalOptions>\n   </TestAction>\n   <LaunchAction\n      buildConfiguration = \"Debug\"\n      selectedDebuggerIdentifier = \"Xcode.DebuggerFoundation.Debugger.LLDB\"\n      selectedLauncherIdentifier = \"Xcode.DebuggerFoundation.Launcher.LLDB\"\n      launchStyle = \"0\"\n      useCustomWorkingDirectory = \"NO\"\n      ignoresPersistentStateOnLaunch = \"NO\"\n      debugDocumentVersioning = \"YES\"\n      debugServiceExtension = \"internal\"\n      allowLocationSimulation = \"YES\">\n      <BuildableProductRunnable\n         runnableDebuggingMode = \"0\">\n         <BuildableReference\n            BuildableIdentifier = \"primary\"\n            BlueprintIdentifier = \"CF73731020B5592A00BBE7AC\"\n            BuildableName = \"BBGestureBack_SysFull_oc.app\"\n            BlueprintName = \"BBGestureBack_SysFull_oc\"\n            ReferencedContainer = \"container:BBGestureBack.xcodeproj\">\n         </BuildableReference>\n      </BuildableProductRunnable>\n      <AdditionalOptions>\n      </AdditionalOptions>\n   </LaunchAction>\n   <ProfileAction\n      buildConfiguration = \"Release\"\n      shouldUseLaunchSchemeArgsEnv = \"YES\"\n      savedToolIdentifier = \"\"\n      useCustomWorkingDirectory = \"NO\"\n      debugDocumentVersioning = \"YES\">\n      <BuildableProductRunnable\n         runnableDebuggingMode = \"0\">\n         <BuildableReference\n            BuildableIdentifier = \"primary\"\n            BlueprintIdentifier = \"CF73731020B5592A00BBE7AC\"\n            BuildableName = \"BBGestureBack_SysFull_oc.app\"\n            BlueprintName = \"BBGestureBack_SysFull_oc\"\n            ReferencedContainer = \"container:BBGestureBack.xcodeproj\">\n         </BuildableReference>\n      </BuildableProductRunnable>\n   </ProfileAction>\n   <AnalyzeAction\n      buildConfiguration = \"Debug\">\n   </AnalyzeAction>\n   <ArchiveAction\n      buildConfiguration = \"Release\"\n      revealArchiveInOrganizer = \"YES\">\n   </ArchiveAction>\n</Scheme>\n"
  },
  {
    "path": "BBGestureBack.xcodeproj/xcuserdata/Bonway.xcuserdatad/xcschemes/xcschememanagement.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>SchemeUserState</key>\n\t<dict>\n\t\t<key>BBGestureBack_Full_oc.xcscheme</key>\n\t\t<dict>\n\t\t\t<key>isShown</key>\n\t\t\t<true/>\n\t\t\t<key>orderHint</key>\n\t\t\t<integer>0</integer>\n\t\t</dict>\n\t\t<key>BBGestureBack_Full_swift.xcscheme</key>\n\t\t<dict>\n\t\t\t<key>isShown</key>\n\t\t\t<true/>\n\t\t\t<key>orderHint</key>\n\t\t\t<integer>1</integer>\n\t\t</dict>\n\t\t<key>BBGestureBack_SysFull_oc.xcscheme</key>\n\t\t<dict>\n\t\t\t<key>isShown</key>\n\t\t\t<true/>\n\t\t\t<key>orderHint</key>\n\t\t\t<integer>2</integer>\n\t\t</dict>\n\t\t<key>BBGestureBack_SysFull_swift.xcscheme</key>\n\t\t<dict>\n\t\t\t<key>orderHint</key>\n\t\t\t<integer>3</integer>\n\t\t</dict>\n\t\t<key>BBGestureBack_SysFull_swift.xcscheme_^#shared#^_</key>\n\t\t<dict>\n\t\t\t<key>orderHint</key>\n\t\t\t<integer>3</integer>\n\t\t</dict>\n\t</dict>\n\t<key>SuppressBuildableAutocreation</key>\n\t<dict>\n\t\t<key>CEDECB8E205CC3CD00C08340</key>\n\t\t<dict>\n\t\t\t<key>primary</key>\n\t\t\t<true/>\n\t\t</dict>\n\t\t<key>CF73731020B5592A00BBE7AC</key>\n\t\t<dict>\n\t\t\t<key>primary</key>\n\t\t\t<true/>\n\t\t</dict>\n\t\t<key>CFD0E96A207A621C00E58465</key>\n\t\t<dict>\n\t\t\t<key>primary</key>\n\t\t\t<true/>\n\t\t</dict>\n\t</dict>\n</dict>\n</plist>\n"
  },
  {
    "path": "BBGestureBack.xcodeproj/xcuserdata/user.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Bucket\n   type = \"1\"\n   version = \"2.0\">\n</Bucket>\n"
  },
  {
    "path": "BBGestureBack.xcodeproj/xcuserdata/user.xcuserdatad/xcschemes/xcschememanagement.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>SchemeUserState</key>\n\t<dict>\n\t\t<key>BBGestureBack.xcscheme</key>\n\t\t<dict>\n\t\t\t<key>orderHint</key>\n\t\t\t<integer>0</integer>\n\t\t</dict>\n\t</dict>\n</dict>\n</plist>\n"
  },
  {
    "path": "BBGestureBack_Full_oc/Assets.xcassets/AppIcon.appiconset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"size\" : \"20x20\",\n      \"idiom\" : \"iphone\",\n      \"filename\" : \"20@2x-1.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"size\" : \"20x20\",\n      \"idiom\" : \"iphone\",\n      \"filename\" : \"20@3x.png\",\n      \"scale\" : \"3x\"\n    },\n    {\n      \"size\" : \"29x29\",\n      \"idiom\" : \"iphone\",\n      \"filename\" : \"29@2x-1.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"size\" : \"29x29\",\n      \"idiom\" : \"iphone\",\n      \"filename\" : \"29@3x.png\",\n      \"scale\" : \"3x\"\n    },\n    {\n      \"size\" : \"40x40\",\n      \"idiom\" : \"iphone\",\n      \"filename\" : \"40@2x-1.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"size\" : \"40x40\",\n      \"idiom\" : \"iphone\",\n      \"filename\" : \"40@3x.png\",\n      \"scale\" : \"3x\"\n    },\n    {\n      \"size\" : \"60x60\",\n      \"idiom\" : \"iphone\",\n      \"filename\" : \"60@2x.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"size\" : \"60x60\",\n      \"idiom\" : \"iphone\",\n      \"filename\" : \"60@3x.png\",\n      \"scale\" : \"3x\"\n    },\n    {\n      \"size\" : \"20x20\",\n      \"idiom\" : \"ipad\",\n      \"filename\" : \"20@1x.png\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"size\" : \"20x20\",\n      \"idiom\" : \"ipad\",\n      \"filename\" : \"20@2x.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"size\" : \"29x29\",\n      \"idiom\" : \"ipad\",\n      \"filename\" : \"29@1x.png\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"size\" : \"29x29\",\n      \"idiom\" : \"ipad\",\n      \"filename\" : \"29@2x.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"size\" : \"40x40\",\n      \"idiom\" : \"ipad\",\n      \"filename\" : \"40@1x.png\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"size\" : \"40x40\",\n      \"idiom\" : \"ipad\",\n      \"filename\" : \"40@2x.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"size\" : \"76x76\",\n      \"idiom\" : \"ipad\",\n      \"filename\" : \"76@1x.png\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"size\" : \"76x76\",\n      \"idiom\" : \"ipad\",\n      \"filename\" : \"76@2x.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"size\" : \"83.5x83.5\",\n      \"idiom\" : \"ipad\",\n      \"filename\" : \"83.5@2x.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"size\" : \"1024x1024\",\n      \"idiom\" : \"ios-marketing\",\n      \"filename\" : \"1024@1x.png\",\n      \"scale\" : \"1x\"\n    }\n  ],\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "BBGestureBack_Full_oc/Assets.xcassets/Contents.json",
    "content": "{\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "BBGestureBack_Full_oc/Assets.xcassets/Navigation/Contents.json",
    "content": "{\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "BBGestureBack_Full_oc/Assets.xcassets/Navigation/bb_navigation_back.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"bb_navigation_back@2x.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"bb_navigation_back@3x.png\",\n      \"scale\" : \"3x\"\n    }\n  ],\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "BBGestureBack_Full_oc/Assets.xcassets/TabBar/Contents.json",
    "content": "{\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "BBGestureBack_Full_oc/Assets.xcassets/TabBar/TabBarHomeNormal.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"TabBarHomeNormal@2x.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"TabBarHomeNormal@3x.png\",\n      \"scale\" : \"3x\"\n    }\n  ],\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  },\n  \"properties\" : {\n    \"template-rendering-intent\" : \"original\"\n  }\n}"
  },
  {
    "path": "BBGestureBack_Full_oc/Assets.xcassets/TabBar/TabBarHomeSelected.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"TabBarHomeSelected@2x.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"TabBarHomeSelected@3x.png\",\n      \"scale\" : \"3x\"\n    }\n  ],\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "BBGestureBack_Full_oc/Assets.xcassets/TabBar/TabBarUserNormal.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"TabBarUserNormal@2x.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"TabBarUserNormal@3x.png\",\n      \"scale\" : \"3x\"\n    }\n  ],\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  },\n  \"properties\" : {\n    \"template-rendering-intent\" : \"original\"\n  }\n}"
  },
  {
    "path": "BBGestureBack_Full_oc/Assets.xcassets/TabBar/TabBarUserSelected.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"TabBarUserSelected@2x.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"TabBarUserSelected@3x.png\",\n      \"scale\" : \"3x\"\n    }\n  ],\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "BBGestureBack_Full_oc/Assets.xcassets/logo.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"logo@2x.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"logo@3x.png\",\n      \"scale\" : \"3x\"\n    }\n  ],\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "BBGestureBack_Full_oc/Base.lproj/LaunchScreen.storyboard",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB\" version=\"3.0\" toolsVersion=\"14109\" targetRuntime=\"iOS.CocoaTouch\" propertyAccessControl=\"none\" useAutolayout=\"YES\" launchScreen=\"YES\" colorMatched=\"YES\" initialViewController=\"01J-lp-oVM\">\n    <device id=\"retina4_7\" orientation=\"portrait\">\n        <adaptation id=\"fullscreen\"/>\n    </device>\n    <dependencies>\n        <deployment identifier=\"iOS\"/>\n        <plugIn identifier=\"com.apple.InterfaceBuilder.IBCocoaTouchPlugin\" version=\"14088\"/>\n        <capability name=\"Constraints to layout margins\" minToolsVersion=\"6.0\"/>\n        <capability name=\"documents saved in the Xcode 8 format\" minToolsVersion=\"8.0\"/>\n    </dependencies>\n    <scenes>\n        <!--View Controller-->\n        <scene sceneID=\"EHf-IW-A2E\">\n            <objects>\n                <viewController id=\"01J-lp-oVM\" sceneMemberID=\"viewController\">\n                    <layoutGuides>\n                        <viewControllerLayoutGuide type=\"top\" id=\"wJ6-tn-oZ6\"/>\n                        <viewControllerLayoutGuide type=\"bottom\" id=\"brw-ND-DR7\"/>\n                    </layoutGuides>\n                    <view key=\"view\" contentMode=\"scaleToFill\" id=\"Ze5-6b-2t3\">\n                        <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"375\" height=\"667\"/>\n                        <autoresizingMask key=\"autoresizingMask\" widthSizable=\"YES\" heightSizable=\"YES\"/>\n                        <subviews>\n                            <imageView userInteractionEnabled=\"NO\" contentMode=\"scaleToFill\" horizontalHuggingPriority=\"251\" verticalHuggingPriority=\"251\" image=\"logo\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"7fk-3g-lDI\">\n                                <rect key=\"frame\" x=\"67\" y=\"213.5\" width=\"240\" height=\"240\"/>\n                                <constraints>\n                                    <constraint firstAttribute=\"height\" constant=\"240\" id=\"lbg-7s-TM8\"/>\n                                    <constraint firstAttribute=\"width\" constant=\"240\" id=\"opV-cn-Xl0\"/>\n                                </constraints>\n                            </imageView>\n                            <label opaque=\"NO\" userInteractionEnabled=\"NO\" contentMode=\"left\" horizontalHuggingPriority=\"251\" verticalHuggingPriority=\"251\" text=\"您可以为我点个赞吗？\" textAlignment=\"center\" lineBreakMode=\"tailTruncation\" baselineAdjustment=\"alignBaselines\" adjustsFontSizeToFit=\"NO\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"LMs-9Q-pEN\">\n                                <rect key=\"frame\" x=\"16\" y=\"473.5\" width=\"343\" height=\"21\"/>\n                                <constraints>\n                                    <constraint firstAttribute=\"height\" constant=\"21\" id=\"IiF-NU-D1J\"/>\n                                </constraints>\n                                <fontDescription key=\"fontDescription\" type=\"system\" pointSize=\"22\"/>\n                                <nil key=\"highlightedColor\"/>\n                            </label>\n                        </subviews>\n                        <color key=\"backgroundColor\" white=\"1\" alpha=\"1\" colorSpace=\"custom\" customColorSpace=\"genericGamma22GrayColorSpace\"/>\n                        <constraints>\n                            <constraint firstItem=\"LMs-9Q-pEN\" firstAttribute=\"top\" secondItem=\"7fk-3g-lDI\" secondAttribute=\"bottom\" constant=\"20\" id=\"4pq-RP-mNf\"/>\n                            <constraint firstItem=\"LMs-9Q-pEN\" firstAttribute=\"leading\" secondItem=\"Ze5-6b-2t3\" secondAttribute=\"leadingMargin\" id=\"CPs-4w-sCY\"/>\n                            <constraint firstItem=\"7fk-3g-lDI\" firstAttribute=\"centerY\" secondItem=\"Ze5-6b-2t3\" secondAttribute=\"centerY\" id=\"JdY-mR-UbN\"/>\n                            <constraint firstItem=\"7fk-3g-lDI\" firstAttribute=\"centerX\" secondItem=\"Ze5-6b-2t3\" secondAttribute=\"centerX\" id=\"etK-3r-Gum\"/>\n                            <constraint firstAttribute=\"trailingMargin\" secondItem=\"LMs-9Q-pEN\" secondAttribute=\"trailing\" id=\"nVr-AX-uZf\"/>\n                        </constraints>\n                    </view>\n                </viewController>\n                <placeholder placeholderIdentifier=\"IBFirstResponder\" id=\"iYj-Kq-Ea1\" userLabel=\"First Responder\" sceneMemberID=\"firstResponder\"/>\n            </objects>\n            <point key=\"canvasLocation\" x=\"32.5\" y=\"416.5\"/>\n        </scene>\n    </scenes>\n    <resources>\n        <image name=\"logo\" width=\"200\" height=\"200\"/>\n    </resources>\n</document>\n"
  },
  {
    "path": "BBGestureBack_Full_oc/Classes/Home/Index/HomeViewController.h",
    "content": "//  希望您的举手之劳，能为我点颗赞，谢谢~\n//  代码地址: https://github.com/Bonway/BBGestureBack\n//  BBGestureBack\n//  Created by Bonway on 2016/3/17.\n//  Copyright © 2016年 Bonway. All rights reserved.\n//\n\n\n#import <UIKit/UIKit.h>\n#import \"BBGestureBaseController.h\"\n@interface HomeViewController : BBGestureBaseController\n\n@end\n"
  },
  {
    "path": "BBGestureBack_Full_oc/Classes/Home/Index/HomeViewController.m",
    "content": "//  希望您的举手之劳，能为我点颗赞，谢谢~\n//  代码地址: https://github.com/Bonway/BBGestureBack\n//  BBGestureBack\n//  Created by Bonway on 2016/3/17.\n//  Copyright © 2016年 Bonway. All rights reserved.\n//\n\n\n#import \"HomeViewController.h\"\n#import \"ViewController.h\"\n@interface HomeViewController ()\n\n@end\n\n@implementation HomeViewController\n\n- (void)viewDidLoad {\n    [super viewDidLoad];\n    \n    UIButton *sysBtn = [[UIButton alloc]initWithFrame:CGRectMake(100, 100, 100, 100)];\n    sysBtn.backgroundColor = [UIColor blueColor];\n    [sysBtn setTitle:@\"sysPush\" forState:UIControlStateNormal];\n    [sysBtn addTarget:self action:@selector(sysPushClick) forControlEvents:UIControlEventTouchUpInside];\n    [self.view addSubview:sysBtn];\n    \n}\n\n-(void)sysPushClick{\n    [self.navigationController pushViewController:[ViewController new] animated:YES];\n}\n- (void)didReceiveMemoryWarning {\n    [super didReceiveMemoryWarning];\n    \n}\n\n\n\n@end\n"
  },
  {
    "path": "BBGestureBack_Full_oc/Classes/Home/ViewController.h",
    "content": "//  希望您的举手之劳，能为我点颗赞，谢谢~\n//  代码地址: https://github.com/Bonway/BBGestureBack\n//  BBGestureBack\n//  Created by Bonway on 2016/3/17.\n//  Copyright © 2016年 Bonway. All rights reserved.\n//\n\n\n#import <UIKit/UIKit.h>\n#import \"BBGestureBaseController.h\"\n@interface ViewController : BBGestureBaseController\n\n\n@end\n\n"
  },
  {
    "path": "BBGestureBack_Full_oc/Classes/Home/ViewController.m",
    "content": "//  希望您的举手之劳，能为我点颗赞，谢谢~\n//  代码地址: https://github.com/Bonway/BBGestureBack\n//  BBGestureBack\n//  Created by Bonway on 2016/3/17.\n//  Copyright © 2016年 Bonway. All rights reserved.\n//\n\n\n#import \"ViewController.h\"\n#import \"AppDelegate.h\"\n@interface ViewController ()\n\n@end\n\n@implementation ViewController\n\n- (void)viewDidLoad {\n    [super viewDidLoad];\n    \n    \n    //iOS12.1 UINavigationController + UITabBarController（ UITabBar 磨砂），在 系统的 popViewControllerAnimated 会遇到tabbar布局错乱的问题，所以需添加以下方法。\n    //当然你也可以自己选择添加到底层的navigationController，或 baseViewController中，进行处理。\n    [[UITabBar appearance]setTranslucent:NO];\n    //---------------------------------------\n    \n    \n    self.view.backgroundColor = [UIColor whiteColor];\n    \n    UIButton *popBtn = [[UIButton alloc]initWithFrame:CGRectMake(100, 100, 150, 50)];\n    popBtn.backgroundColor = [UIColor redColor];\n    [popBtn setTitle:@\"BBPop\" forState:UIControlStateNormal];\n    [popBtn addTarget:self action:@selector(popClick) forControlEvents:UIControlEventTouchUpInside];\n    [self.view addSubview:popBtn];\n    \n    UIButton *popToVCBtn = [[UIButton alloc]initWithFrame:CGRectMake(100, 200, 150, 50)];\n    popToVCBtn.backgroundColor = [UIColor redColor];\n    [popToVCBtn setTitle:@\"BBPopToVC\" forState:UIControlStateNormal];\n    [popToVCBtn addTarget:self action:@selector(popToClick) forControlEvents:UIControlEventTouchUpInside];\n    [self.view addSubview:popToVCBtn];\n    \n    UIButton *popToRootBtn = [[UIButton alloc]initWithFrame:CGRectMake(100, 300, 150, 50)];\n    popToRootBtn.backgroundColor = [UIColor redColor];\n    [popToRootBtn setTitle:@\"BBPopToRootVC\" forState:UIControlStateNormal];\n    [popToRootBtn addTarget:self action:@selector(popToRootClick) forControlEvents:UIControlEventTouchUpInside];\n    [self.view addSubview:popToRootBtn];\n    \n    UIButton *sysPopBtn = [[UIButton alloc]initWithFrame:CGRectMake(100, 400, 150, 50)];\n    sysPopBtn.backgroundColor = [UIColor blueColor];\n    [sysPopBtn setTitle:@\"sysPop\" forState:UIControlStateNormal];\n    [sysPopBtn addTarget:self action:@selector(sysPopClick) forControlEvents:UIControlEventTouchUpInside];\n    [self.view addSubview:sysPopBtn];\n    \n    \n}\n\n\n\n-(void)popClick{\n    [self bb_popViewController];\n}\n\n-(void)popToClick{\n    UIViewController *viewController = self.navigationController.viewControllers[0];\n    [self bb_popToViewController:viewController];\n}\n\n-(void)popToRootClick{\n    [self bb_popToRootViewController];\n}\n\n-(void)sysPopClick{\n    [self.navigationController popViewControllerAnimated:YES];\n}\n\n- (void)didReceiveMemoryWarning {\n    [super didReceiveMemoryWarning];\n    \n}\n\n\n@end\n"
  },
  {
    "path": "BBGestureBack_Full_oc/Classes/Main/AppDelegate.h",
    "content": "//  希望您的举手之劳，能为我点颗赞，谢谢~\n//  代码地址: https://github.com/Bonway/BBGestureBack\n//  BBGestureBack\n//  Created by Bonway on 2016/3/17.\n//  Copyright © 2016年 Bonway. All rights reserved.\n//\n\n\n#import <UIKit/UIKit.h>\n#import \"BBGestureBaseController.h\"\n@interface AppDelegate : UIResponder <UIApplicationDelegate>\n\n@property (nonatomic, strong) BBGestureBaseView *gestureBaseView;\n@property (strong, nonatomic) UIWindow *window;\n+ (AppDelegate* )shareAppDelegate;\n\n- (void)setupRootViewController:(UIViewController *)rootViewController;\n\n@end\n\n"
  },
  {
    "path": "BBGestureBack_Full_oc/Classes/Main/AppDelegate.m",
    "content": "//  希望您的举手之劳，能为我点颗赞，谢谢~\n//  代码地址: https://github.com/Bonway/BBGestureBack\n//  BBGestureBack\n//  Created by Bonway on 2016/3/17.\n//  Copyright © 2016年 Bonway. All rights reserved.\n//\n\n\n#import \"AppDelegate.h\"\n\n#import \"BBGestureBack.h\"\n#import \"BBUserGuiderController.h\"\n@interface AppDelegate ()\n\n@end\n\n@implementation AppDelegate\n\n+ (AppDelegate* )shareAppDelegate {\n    return (AppDelegate*)[UIApplication sharedApplication].delegate;\n}\n\n- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {\n    \n    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];\n    self.window.backgroundColor = [UIColor whiteColor];\n    \n    [self setupRootController];\n    \n    [self.window makeKeyAndVisible];\n    return YES;\n    \n}\n\n\n- (void)applicationWillResignActive:(UIApplication *)application {\n    // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.\n    // Use this method to pause ongoing tasks, disable timers, and invalidate graphics rendering callbacks. Games should use this method to pause the game.\n}\n\n\n- (void)applicationDidEnterBackground:(UIApplication *)application {\n    // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.\n    // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.\n}\n\n\n- (void)applicationWillEnterForeground:(UIApplication *)application {\n    // Called as part of the transition from the background to the active state; here you can undo many of the changes made on entering the background.\n}\n\n\n- (void)applicationDidBecomeActive:(UIApplication *)application {\n    // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.\n}\n\n\n- (void)applicationWillTerminate:(UIApplication *)application {\n    // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.\n}\n\n\n\n- (void)setupRootController {\n    \n    if (![BBUserDefault boolForKey:kBBFirstLaunch]) {\n        [BBUserDefault setBool:YES forKey:kBBFirstLaunch];\n        [self setupRootViewController:[[BBUserGuiderController alloc]init]];\n    }else{\n        [self setupRootViewController:[[BBTabBarController alloc] init]];\n    }\n    \n}\n\n- (void)setupRootViewController:(UIViewController *)rootViewController {\n    \n    rootViewController.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;\n    [UIView transitionWithView:self.window duration:0.5f options:UIViewAnimationOptionTransitionCrossDissolve animations:^{\n        BOOL oldState = [UIView areAnimationsEnabled];\n        [UIView setAnimationsEnabled:NO];\n        [UIApplication sharedApplication].keyWindow.rootViewController = rootViewController;\n        [UIView setAnimationsEnabled:oldState];\n    } completion:nil];\n    \n    \n    if (!self.gestureBaseView) {\n        self.window.rootViewController = rootViewController;\n        self.gestureBaseView = [[BBGestureBaseView alloc] initWithFrame:CGRectMake(0, 0, self.window.frame.size.width, self.window.frame.size.height)];\n        [self.window insertSubview:self.gestureBaseView atIndex:0];\n    }else{\n        [self.gestureBaseView removeObserver];\n        self.window.rootViewController = rootViewController;\n        [self.gestureBaseView addObserver];\n        [self.window sendSubviewToBack:self.gestureBaseView];\n    }\n    \n    self.gestureBaseView.hidden = YES;\n    \n}\n\n@end\n"
  },
  {
    "path": "BBGestureBack_Full_oc/Classes/Main/BBGestureBack/BBGestureBack.h",
    "content": "//\n//  BBGestureBack.h\n//  BBGestureBack\n//\n//  Created by Bonway on 2019/4/3.\n//  Copyright © 2019 Bonway. All rights reserved.\n//\n\n#ifndef BBGestureBack_h\n#define BBGestureBack_h\n\n#import \"BBGestureBackConst.h\"\n#import \"BBTabBarController.h\"\n#import \"BBGestureBaseController.h\"\n\n#endif /* BBGestureBack_h */\n"
  },
  {
    "path": "BBGestureBack_Full_oc/Classes/Main/BBGestureBack/BBGestureBackConst.h",
    "content": "//  希望您的举手之劳，能为我点颗赞，谢谢~\n//  代码地址: https://github.com/Bonway/BBGestureBack\n//  BBGestureBack\n//  Created by Bonway on 2016/3/17.\n//  Copyright © 2016年 Bonway. All rights reserved.\n//\n\n\n#import <UIKit/UIKit.h>\n#import <objc/message.h>\n\n#ifdef DEBUG\n#define BBLog(...) NSLog(__VA_ARGS__)\n#else\n#define BBLog(...)\n#endif\n\n#define BBWeakSelf __weak typeof(self) weakSelf = self;\n#define BBUserDefault [NSUserDefaults standardUserDefaults]\n#define BBDeprecated(instead) NS_DEPRECATED(2_0, 2_0, 2_0, 2_0, instead)\n#define BBObjectMsgSend(...) ((void (*)(void *, SEL, UIView *))objc_msgSend)(__VA_ARGS__)\n#define BBObjectMsgTarget(target) (__bridge void *)(target)\n#define BBColor(r, g, b) [UIColor colorWithRed:(r)/255.0 green:(g)/255.0 blue:(b)/255.0 alpha:1.0]\n\n#pragma mark - 手机型号\n#define BBSCREEN_HEIGHT [UIScreen mainScreen].bounds.size.height\n#define BBIS_IPHONEX ((BBSCREEN_HEIGHT-812)==0 || (BBSCREEN_HEIGHT-896)==0)\n\n\n//The ifrst user guider image (第一次引导图)\nUIKIT_EXTERN NSString *const kBBFirstLaunch;\n// Open iPhone X Style.（是否打开Phone X风格）\nUIKIT_EXTERN const Boolean kBBIsOpenIphoneXStyle;\n// The default is 40， iPhone X Style Corner。（默认为40，iPhone X 圆角弧度）\nUIKIT_EXTERN const CGFloat kBBIphoneXStyleCorner;\n// The default is 3， User guider image count。（默认为3，用户引导图总页数）\nUIKIT_EXTERN const NSInteger kBBUserGuiderImgCount;\n// Screen system to return gesture.（是否屏蔽系统返回手势）\nUIKIT_EXTERN const Boolean kBBIsCanleSystemPan;\n// The distance from the left can be automatically returned.(距离左边多少距离，可以自动返回)\nUIKIT_EXTERN const CGFloat kBBDistanceToLeft;\n// BottomView Scaling.(底层缩放比例)\nUIKIT_EXTERN const CGFloat kBBWindowToScale;\n// BottomView alpha.(底层透明度)\nUIKIT_EXTERN const CGFloat kBBMaskingAlpha;\n// Automatic return speed.(自动返回速度)\nUIKIT_EXTERN const CGFloat kBBGestureSpeed;\n// Range of drag and drop.(拖拽的范围,大于此值才有效果)\nUIKIT_EXTERN const CGFloat kBBDistanceToPan;\n// The default is 0, 0 for full screen return, and also for distance.（默认为0，0为全屏返回，也可指定距离）\nUIKIT_EXTERN const CGFloat kBBDistanceToStart;\n\n\n"
  },
  {
    "path": "BBGestureBack_Full_oc/Classes/Main/BBGestureBack/BBGestureBackConst.m",
    "content": "//  希望您的举手之劳，能为我点颗赞，谢谢~\n//  代码地址: https://github.com/Bonway/BBGestureBack\n//  BBGestureBack\n//  Created by Bonway on 2016/3/17.\n//  Copyright © 2016年 Bonway. All rights reserved.\n//\n\n\n#import <UIKit/UIKit.h>\n\nNSString *const kBBFirstLaunch = @\"BBFirstLaunch\";\n\nconst Boolean kBBIsOpenIphoneXStyle = YES;\nconst CGFloat kBBIphoneXStyleCorner = 40.0;\nconst NSInteger kBBUserGuiderImgCount = 3;\nconst Boolean kBBIsCanleSystemPan = YES;\nconst CGFloat kBBDistanceToLeft = 70.0;\nconst CGFloat kBBWindowToScale = 0.95;\nconst CGFloat kBBMaskingAlpha = 0.9;\nconst CGFloat kBBGestureSpeed = 0.3;\nconst CGFloat kBBDistanceToPan = 10.0;\nconst CGFloat kBBDistanceToStart = 0.0;\n"
  },
  {
    "path": "BBGestureBack_Full_oc/Classes/Main/BBGestureBack/BBGestureBaseController.h",
    "content": "//  希望您的举手之劳，能为我点颗赞，谢谢~\n//  代码地址: https://github.com/Bonway/BBGestureBack\n//  BBGestureBack\n//  Created by Bonway on 2016/3/17.\n//  Copyright © 2016年 Bonway. All rights reserved.\n//\n\n\n#import <UIKit/UIKit.h>\ntypedef enum _BBPopType {\n    BBPopTypeViewController  = 0,\n    BBPopTypeToViewController,\n    BBPopTypeToRootViewController\n} BBPopType;\n\n@interface BBGestureBaseController : UIViewController\n@property (nonatomic) BBPopType blankType;// default is BBPopTypeViewController.\n@property (nonatomic) Boolean isEnablePanGesture;// default is YES.\n\n- (void)bb_popViewController;\n- (void)bb_popToViewController:(UIViewController *)viewController;\n- (void)bb_popToRootViewController;\n\n@end\n\n\n@interface BBGestureBaseView : UIView\n@property (nonatomic, strong) UIImageView *imgView;\n@property (nonatomic, strong) UIView *maskView;\n@property (nonatomic, strong) NSMutableArray *arrayImage;\n\n- (void)showEffectChange:(CGPoint)pt;\n- (void)restore;\n- (void)screenShot;\n- (void)removeObserver;\n- (void)addObserver;\n@end\n"
  },
  {
    "path": "BBGestureBack_Full_oc/Classes/Main/BBGestureBack/BBGestureBaseController.m",
    "content": "//  希望您的举手之劳，能为我点颗赞，谢谢~\n//  代码地址: https://github.com/Bonway/BBGestureBack\n//  BBGestureBack\n//  Created by Bonway on 2016/3/17.\n//  Copyright © 2016年 Bonway. All rights reserved.\n//\n\n\n#import \"BBGestureBaseController.h\"\n#import <QuartzCore/QuartzCore.h>\n#import \"AppDelegate.h\"\n#import \"BBGestureBackConst.h\"\n\n\n\n\nstatic char bbListenTabbarViewMove[] = \"bbListenTabbarViewMove\";\n\n@interface BBGestureBaseController ()\n\n@property (nonatomic,strong)UIBarButtonItem *bbBackBarItem;\n\n@end\n\n@implementation BBGestureBaseController\n\n- (id)init{\n    self = [super init];\n    if (self) {\n        self.isEnablePanGesture = YES;\n        self.blankType = BBPopTypeViewController;\n    }\n    return self;\n}\n\n- (void)viewDidLoad {\n    [super viewDidLoad];\n    \n    self.view.backgroundColor = [UIColor whiteColor];\n    \n    if (self.navigationController.viewControllers.count > 1) {\n        self.navigationItem.leftBarButtonItem = self.bbBackBarItem;\n    }\n}\n\n-(UIBarButtonItem *)bbBackBarItem{\n    if (!_bbBackBarItem) {\n        UIButton *backBtn = [UIButton buttonWithType:UIButtonTypeCustom];\n        [backBtn setImage:[UIImage imageNamed:@\"bb_navigation_back\"] forState:UIControlStateNormal];\n        backBtn.imageView.contentMode = UIViewContentModeCenter;\n        [backBtn addTarget:self action:@selector(dismissSelf) forControlEvents:UIControlEventTouchUpInside];\n        _bbBackBarItem = [[UIBarButtonItem alloc]initWithCustomView:backBtn];\n        backBtn.frame = CGRectMake(0, 0, 44, 44);\n        backBtn.contentEdgeInsets = UIEdgeInsetsMake(0, -25, 0,0);\n    }\n    return _bbBackBarItem;\n}\n\n- (void)dismissSelf{\n    \n    switch (self.blankType) {\n        case BBPopTypeViewController:\n            [self bb_popViewController];\n            break;\n        case BBPopTypeToRootViewController:\n            [self bb_popToRootViewController];\n            break;\n        default:\n            break;\n    }\n    \n    \n}\n\n\n\n-(void)bb_basePopViewController:(UIViewController *)viewController PopType:(BBPopType)popType{\n    AppDelegate *appDelegate = (AppDelegate *)[UIApplication sharedApplication].delegate;\n    UIViewController *rootVC = appDelegate.window.rootViewController;\n    UIViewController *presentedVC = rootVC.presentedViewController;\n    appDelegate.gestureBaseView.hidden = NO;\n    \n    appDelegate.gestureBaseView.maskView.backgroundColor = [UIColor colorWithHue:0 saturation:0 brightness:0 alpha:kBBMaskingAlpha];\n    appDelegate.gestureBaseView.imgView.transform = CGAffineTransformMakeScale(kBBWindowToScale, kBBWindowToScale);\n    \n    [UIView animateWithDuration:kBBGestureSpeed animations:^{\n        rootVC.view.transform = CGAffineTransformMakeTranslation(([UIScreen mainScreen].bounds.size.width), 0);\n        presentedVC.view.transform = CGAffineTransformMakeTranslation(([UIScreen mainScreen].bounds.size.width), 0);\n        if (BBIS_IPHONEX && kBBIsOpenIphoneXStyle) {\n            rootVC.view.layer.masksToBounds = YES;\n            rootVC.view.layer.cornerRadius = kBBIphoneXStyleCorner;\n            presentedVC.view.layer.masksToBounds = YES;\n            presentedVC.view.layer.cornerRadius = kBBIphoneXStyleCorner;\n        }\n    } completion:^(BOOL finished) {\n        switch (popType) {\n            case BBPopTypeViewController:\n                [self.navigationController popViewControllerAnimated:NO];\n                break;\n            case BBPopTypeToViewController:\n                [self.navigationController popToViewController:viewController animated:NO];\n                break;\n            case BBPopTypeToRootViewController:\n                [self.navigationController popToRootViewControllerAnimated:NO];\n                break;\n            default:\n                break;\n        }\n        rootVC.view.transform = CGAffineTransformIdentity;\n        presentedVC.view.transform = CGAffineTransformIdentity;\n        if (BBIS_IPHONEX && kBBIsOpenIphoneXStyle) {\n            rootVC.view.layer.masksToBounds = NO;\n            rootVC.view.layer.cornerRadius = 0;\n            presentedVC.view.layer.masksToBounds = NO;\n            presentedVC.view.layer.cornerRadius = 0;\n        }\n        appDelegate.gestureBaseView.hidden = YES;\n        \n    }];\n}\n\n- (void)bb_popViewController{\n    [self bb_basePopViewController:nil PopType:BBPopTypeViewController];\n}\n\n-(void)bb_popToRootViewController{\n    [self bb_basePopViewController:nil PopType:BBPopTypeToRootViewController];\n}\n\n-(void)bb_popToViewController:(UIViewController *)viewController{\n    [self bb_basePopViewController:viewController PopType:BBPopTypeToViewController];\n}\n\n\n- (void)didReceiveMemoryWarning {\n    [super didReceiveMemoryWarning];\n}\n@end\n@interface BBGestureBaseView()\n@property(nonatomic,weak)UIView *rootControllerView;\n@end\n\n@implementation BBGestureBaseView\n- (id)initWithFrame:(CGRect)frame {\n    self = [super initWithFrame:frame];\n    if (self) {\n        self.arrayImage = [NSMutableArray array];\n        self.backgroundColor = [UIColor blackColor];\n        self.imgView = [[UIImageView alloc] initWithFrame:self.bounds];\n        if (BBIS_IPHONEX && kBBIsOpenIphoneXStyle) {\n            self.imgView.layer.masksToBounds = YES;\n            self.imgView.layer.cornerRadius = kBBIphoneXStyleCorner;\n        }\n        self.maskView = [[UIView alloc] initWithFrame:self.bounds];\n        self.maskView.backgroundColor = [UIColor colorWithHue:0 saturation:0 brightness:0 alpha:kBBMaskingAlpha];\n        [self addSubview: self.imgView];\n        [self addSubview: self.maskView];\n        [self addObserver];\n    }\n    return self;\n}\n\n- (void)removeObserver {\n    [self.rootControllerView removeObserver:self forKeyPath:@\"transform\" context:bbListenTabbarViewMove];\n}\n\n- (void)addObserver {\n    self.rootControllerView = [AppDelegate shareAppDelegate].window.rootViewController.view;\n    [self.rootControllerView addObserver:self forKeyPath:@\"transform\" options:NSKeyValueObservingOptionNew context:bbListenTabbarViewMove];\n}\n\n- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context{\n    if (context == bbListenTabbarViewMove){\n        NSValue *value  = [change objectForKey:NSKeyValueChangeNewKey];\n        CGAffineTransform newTransform = [value CGAffineTransformValue];\n        [self showEffectChange:CGPointMake(newTransform.tx, 0) ];\n    }\n}\n\n- (void)showEffectChange:(CGPoint)pt{\n    \n    if (pt.x > 0){\n        _maskView.backgroundColor = [UIColor colorWithHue:0 saturation:0 brightness:0 alpha:-pt.x / ([UIScreen mainScreen].bounds.size.width) * kBBMaskingAlpha + kBBMaskingAlpha];\n        _imgView.transform = CGAffineTransformMakeScale(kBBWindowToScale + (pt.x / ([UIScreen mainScreen].bounds.size.width) * (1 - kBBWindowToScale)), kBBWindowToScale + (pt.x / ([UIScreen mainScreen].bounds.size.width) * (1 - kBBWindowToScale)));\n    }\n    if (pt.x < 0){\n        _maskView.backgroundColor = [UIColor colorWithHue:0 saturation:0 brightness:0 alpha:0.5];\n        _imgView.transform = CGAffineTransformIdentity;\n    }\n}\n\n- (void)restore {\n    if (_maskView && _imgView){\n        _maskView.backgroundColor = [UIColor colorWithHue:0 saturation:0 brightness:0 alpha:kBBMaskingAlpha];\n        _imgView.transform = CGAffineTransformMakeScale(kBBWindowToScale, kBBWindowToScale);\n    }\n}\n\n- (void)screenShot{\n    AppDelegate *appDelegate = (AppDelegate*)[UIApplication sharedApplication].delegate;\n    UIGraphicsBeginImageContextWithOptions(CGSizeMake([UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height), YES, 0);\n    [appDelegate.window.layer renderInContext:UIGraphicsGetCurrentContext()];\n    UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();\n    UIGraphicsEndImageContext();\n    CGImageRef imageRef = viewImage.CGImage;\n    UIImage *sendImage = [[UIImage alloc] initWithCGImage:imageRef];\n    self.imgView.image = sendImage;\n    self.imgView.transform = CGAffineTransformMakeScale(kBBWindowToScale, kBBWindowToScale);\n}\n\n- (void)dealloc{\n    [self removeObserver];\n}\n\n- (void)layoutSubviews{\n    [super layoutSubviews];\n}\n@end\n"
  },
  {
    "path": "BBGestureBack_Full_oc/Classes/Main/BBNavigation/BBNavigationController.h",
    "content": "//  希望您的举手之劳，能为我点颗赞，谢谢~\n//  代码地址: https://github.com/Bonway/BBGestureBack\n//  BBGestureBack\n//  Created by Bonway on 2016/3/17.\n//  Copyright © 2016年 Bonway. All rights reserved.\n//\n\n\n#import <UIKit/UIKit.h>\n\n@interface BBNavigationController : UINavigationController\n@property (strong ,nonatomic) NSMutableArray *arrayScreenshot;\n@property (nonatomic, strong) UIPanGestureRecognizer *panGesture;\n@end\n"
  },
  {
    "path": "BBGestureBack_Full_oc/Classes/Main/BBNavigation/BBNavigationController.m",
    "content": "//  希望您的举手之劳，能为我点颗赞，谢谢~\n//  代码地址: https://github.com/Bonway/BBGestureBack\n//  BBGestureBack\n//  Created by Bonway on 2016/3/17.\n//  Copyright © 2016年 Bonway. All rights reserved.\n//\n\n\n#import \"BBNavigationController.h\"\n\n#import \"BBGestureBack.h\"\n#import \"AppDelegate.h\"\n@interface BBNavigationController ()<UIGestureRecognizerDelegate,UINavigationControllerDelegate>\n@end\n\n@implementation BBNavigationController\n\n-(NSMutableArray *)arrayScreenshot{\n    if (!_arrayScreenshot) {\n        _arrayScreenshot = [NSMutableArray array];\n    }\n    return _arrayScreenshot;\n}\n\n- (void)viewDidLoad{\n    [super viewDidLoad];\n    //屏蔽系统的手势\n    self.interactivePopGestureRecognizer.enabled = !kBBIsCanleSystemPan;\n    self.panGesture = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(handlePanGesture:)];\n    _panGesture.delegate = self;\n    [self.view addGestureRecognizer:_panGesture];\n}\n\n- (BOOL)gestureRecognizerShouldBegin:(UIPanGestureRecognizer *)gestureRecognizer {\n    if (gestureRecognizer.view == self.view && [gestureRecognizer locationInView:self.view].x < (kBBDistanceToStart == 0 ? UIScreen.mainScreen.bounds.size.width : kBBDistanceToStart)) {\n        BBGestureBaseController *topView = (BBGestureBaseController *)self.topViewController;\n        if (!topView.isEnablePanGesture)\n            return NO;\n        else {\n            CGPoint translate = [gestureRecognizer translationInView:self.view];\n            BOOL possible = translate.x != 0 && fabs(translate.y) == 0;\n            if (possible)\n                return YES;\n            else\n                return NO;\n            return YES;\n        }\n    }\n    return NO;\n}\n\n- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer\n{\n    if ([otherGestureRecognizer isKindOfClass:NSClassFromString(@\"UIScrollViewPanGestureRecognizer\")] || [otherGestureRecognizer isKindOfClass:NSClassFromString(@\"UIPanGestureRecognizer\")]|| [otherGestureRecognizer isKindOfClass:NSClassFromString(@\"UIScrollViewPagingSwipeGestureRecognizer\")]) {\n        UIView *aView = otherGestureRecognizer.view;\n        if ([aView isKindOfClass:[UIScrollView class]]) {\n            UIScrollView *sv = (UIScrollView *)aView;\n            if (sv.contentOffset.x==0) {\n                if ([otherGestureRecognizer isKindOfClass:NSClassFromString(@\"UIScrollViewPanGestureRecognizer\")] && otherGestureRecognizer.state != UIGestureRecognizerStateBegan) {\n                    return NO;\n                }else{\n                    return YES;\n                }\n            }\n        }\n        return NO;\n    }\n    return YES;\n}\n\n- (void)handlePanGesture:(UIPanGestureRecognizer *)panGesture {\n    AppDelegate *appDelegate = (AppDelegate *)[UIApplication sharedApplication].delegate;\n    UIViewController *rootVC = appDelegate.window.rootViewController;\n    UIViewController *presentedVC = rootVC.presentedViewController;\n    if (self.viewControllers.count == 1) {\n        return;\n    }\n    if (panGesture.state == UIGestureRecognizerStateBegan) {\n        if (BBIS_IPHONEX && kBBIsOpenIphoneXStyle) {\n            rootVC.view.layer.masksToBounds = YES;\n            rootVC.view.layer.cornerRadius = kBBIphoneXStyleCorner;\n            presentedVC.view.layer.masksToBounds = YES;\n            presentedVC.view.layer.cornerRadius = kBBIphoneXStyleCorner;\n        }\n        appDelegate.gestureBaseView.hidden = NO;\n    }\n    else if (panGesture.state == UIGestureRecognizerStateChanged) {\n        CGPoint point_inView = [panGesture translationInView:self.view];\n        if (point_inView.x >= kBBDistanceToPan) {\n            rootVC.view.transform = CGAffineTransformMakeTranslation(point_inView.x - kBBDistanceToPan, 0);\n            presentedVC.view.transform = CGAffineTransformMakeTranslation(point_inView.x - kBBDistanceToPan, 0);\n        }\n    }\n    else if (panGesture.state == UIGestureRecognizerStateEnded) {\n        CGPoint point_inView = [panGesture translationInView:self.view];\n        if (point_inView.x >= kBBDistanceToLeft) {\n            [UIView animateWithDuration:kBBGestureSpeed animations:^{\n                rootVC.view.transform = CGAffineTransformMakeTranslation(([UIScreen mainScreen].bounds.size.width), 0);\n                presentedVC.view.transform = CGAffineTransformMakeTranslation(([UIScreen mainScreen].bounds.size.width), 0);\n            } completion:^(BOOL finished) {\n                [self popViewControllerAnimated:NO];\n                rootVC.view.transform = CGAffineTransformIdentity;\n                presentedVC.view.transform = CGAffineTransformIdentity;\n                appDelegate.gestureBaseView.hidden = YES;\n            }];\n        }\n        else {\n            [UIView animateWithDuration:kBBGestureSpeed animations:^{\n                rootVC.view.transform = CGAffineTransformIdentity;\n                presentedVC.view.transform = CGAffineTransformIdentity;\n            } completion:^(BOOL finished) {\n                if (BBIS_IPHONEX && kBBIsOpenIphoneXStyle) {\n                    rootVC.view.layer.masksToBounds = NO;\n                    rootVC.view.layer.cornerRadius = 0;\n                    presentedVC.view.layer.masksToBounds = NO;\n                    presentedVC.view.layer.cornerRadius = 0;\n                }\n                appDelegate.gestureBaseView.hidden = YES;\n            }];\n        }\n    }\n}\n\n- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {\n    BBGestureBaseController *topView = (BBGestureBaseController *)self.topViewController;\n    if (topView.isEnablePanGesture == NO)     return NO;\n    if (self.viewControllers.count <= 1)    return NO;\n    if ([gestureRecognizer isKindOfClass:[UIPanGestureRecognizer class]]) {\n        CGPoint point = [touch locationInView:gestureRecognizer.view];\n        if (point.x < [UIScreen mainScreen].bounds.size.width) {\n            return YES;\n        }\n    }\n    return NO;\n}\n- (NSArray *)popToViewController:(UIViewController *)viewController animated:(BOOL)animated {\n    NSArray *arr = [super popToViewController:viewController animated:animated];\n    if (self.arrayScreenshot.count > arr.count){\n        for (int i = 0; i < arr.count; i++) {\n            [self.arrayScreenshot removeLastObject];\n        }\n    }\n    return arr;\n}\n- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated {\n    if (self.viewControllers.count == 0) {\n        return [super pushViewController:viewController animated:animated];\n    }else if (self.viewControllers.count >= 1) {\n        viewController.hidesBottomBarWhenPushed = YES;\n    }\n    AppDelegate *appdelegate = (AppDelegate *)[UIApplication sharedApplication].delegate;\n    UIGraphicsBeginImageContextWithOptions(CGSizeMake(appdelegate.window.frame.size.width, appdelegate.window.frame.size.height), YES, 0);\n    [appdelegate.window.layer renderInContext:UIGraphicsGetCurrentContext()];\n    UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();\n    UIGraphicsEndImageContext();\n    [self.arrayScreenshot addObject:viewImage];\n    appdelegate.gestureBaseView.imgView.image = viewImage;\n    [super pushViewController:viewController animated:animated];\n}\n- (UIViewController *)popViewControllerAnimated:(BOOL)animated {\n    \n    AppDelegate *appdelegate = (AppDelegate *)[UIApplication sharedApplication].delegate;\n    [self.arrayScreenshot removeLastObject];\n    UIImage *image = [self.arrayScreenshot lastObject];\n    if (image)\n        appdelegate.gestureBaseView.imgView.image = image;\n    UIViewController *viewController = [super popViewControllerAnimated:animated];\n    \n    return viewController;\n}\n- (NSArray *)popToRootViewControllerAnimated:(BOOL)animated {\n    AppDelegate *appdelegate = (AppDelegate *)[UIApplication sharedApplication].delegate;\n    if (self.arrayScreenshot.count > 2) {\n        [self.arrayScreenshot removeObjectsInRange:NSMakeRange(1, self.arrayScreenshot.count - 1)];\n    }\n    UIImage *image = [self.arrayScreenshot lastObject];\n    if (image)\n        appdelegate.gestureBaseView.imgView.image = image;\n    return [super popToRootViewControllerAnimated:animated];\n}\n- (void)didReceiveMemoryWarning {\n    [super didReceiveMemoryWarning];\n}\n\n\n\n@end\n"
  },
  {
    "path": "BBGestureBack_Full_oc/Classes/Main/BBTabBar/BBTabBarController.h",
    "content": "//  希望您的举手之劳，能为我点颗赞，谢谢~\n//  代码地址: https://github.com/Bonway/BBGestureBack\n//  BBGestureBack\n//  Created by Bonway on 2016/3/17.\n//  Copyright © 2016年 Bonway. All rights reserved.\n//\n\n\n#import <UIKit/UIKit.h>\n\n@interface BBTabBarController : UITabBarController\n \n@end\n"
  },
  {
    "path": "BBGestureBack_Full_oc/Classes/Main/BBTabBar/BBTabBarController.m",
    "content": "//  希望您的举手之劳，能为我点颗赞，谢谢~\n//  代码地址: https://github.com/Bonway/BBGestureBack\n//  BBGestureBack\n//  Created by Bonway on 2016/3/17.\n//  Copyright © 2016年 Bonway. All rights reserved.\n\n\n\n#import \"BBTabBarController.h\"\n\n#import \"BBNavigationController.h\"\n\n#import \"HomeViewController.h\"\n#import \"UserViewController.h\"\n\n@interface BBTabBarController ()\n\n@end\n\n@implementation BBTabBarController\n\n- (void)viewDidLoad {\n    [super viewDidLoad];\n    [self setUpAllChildViewController];\n    \n    //iOS 闪动问题，明白了一看就懂\n    [[UITabBar appearance] setTranslucent:NO];\n    [[UINavigationBar appearance]setTranslucent:NO];\n    self.tabBar.tintColor = [UIColor blueColor];\n    self.tabBar.barTintColor = [UIColor whiteColor];\n}\n- (void)setUpAllChildViewController {\n    HomeViewController *home = [[HomeViewController alloc] init];\n    [self setUpOneChildViewController:home image:[UIImage imageNamed:@\"TabBarHomeNormal\"] selectedImage:[UIImage imageNamed:@\"TabBarHomeSelected\"] title:@\"Home\"];\n    UserViewController *user = [[UserViewController alloc] init];\n    [self setUpOneChildViewController:user image:[UIImage imageNamed:@\"TabBarUserNormal\"] selectedImage:[UIImage imageNamed:@\"TabBarUserSelected\"] title:@\"User\"];\n}\n- (void)setUpOneChildViewController:(UIViewController *)vc image:(UIImage *)image selectedImage:(UIImage *)selectedImage title:(NSString *)title {\n    vc.title = title;\n    vc.tabBarItem.image = image;\n    vc.tabBarItem.selectedImage = selectedImage;\n    BBNavigationController *nav = [[BBNavigationController alloc] initWithRootViewController:vc];\n    [self addChildViewController:nav];\n}\n- (void)didReceiveMemoryWarning {\n    [super didReceiveMemoryWarning];\n}\n\n@end\n"
  },
  {
    "path": "BBGestureBack_Full_oc/Classes/Main/BBUserGuider/BBUserGuiderController.h",
    "content": "//  希望您的举手之劳，能为我点颗赞，谢谢~\n//  代码地址: https://github.com/Bonway/BBGestureBack\n//  BBGestureBack\n//  Created by Bonway on 2016/3/17.\n//  Copyright © 2016年 Bonway. All rights reserved.\n//\n\n#import <UIKit/UIKit.h>\n#import \"BBGestureBaseController.h\"\nNS_ASSUME_NONNULL_BEGIN\n\n@interface BBUserGuiderController : BBGestureBaseController\n\n@end\n\nNS_ASSUME_NONNULL_END\n"
  },
  {
    "path": "BBGestureBack_Full_oc/Classes/Main/BBUserGuider/BBUserGuiderController.m",
    "content": "//  希望您的举手之劳，能为我点颗赞，谢谢~\n//  代码地址: https://github.com/Bonway/BBGestureBack\n//  BBGestureBack\n//  Created by Bonway on 2016/3/17.\n//  Copyright © 2016年 Bonway. All rights reserved.\n//\n\n#import \"BBUserGuiderController.h\"\n#import \"AppDelegate.h\"\n#import \"BBGestureBack.h\"\n@interface BBUserGuiderController ()<UIScrollViewDelegate>\n\n@property (nonatomic,strong)UIScrollView  *userGuiderScrollView;\n@property (nonatomic,strong)UIButton  *startBtn;\n@property (nonatomic,weak)UIImageView   *userGuiderImgView;\n\n@end\n\n@implementation BBUserGuiderController\n\n- (void)viewDidLoad {\n    [super viewDidLoad];\n    \n    [self.view addSubview:self.userGuiderScrollView];\n}\n\n- (UIScrollView *)userGuiderScrollView{\n    if (!_userGuiderScrollView) {\n        _userGuiderScrollView=[[UIScrollView  alloc] initWithFrame:self.view.bounds];\n        \n        NSString *fileStr = [[NSBundle mainBundle] pathForResource:@\"BBUserGuider\" ofType:@\"bundle\"];\n        NSBundle *imageBundle=[NSBundle bundleWithPath:fileStr];\n        \n        for (int i=0; i<kBBUserGuiderImgCount; i++) {\n            UIImageView  *imageView=[[UIImageView alloc] initWithFrame:CGRectMake((self.view.frame.size.width)*i, 0,self.view.frame.size.width,self.view.frame.size.height)];\n            NSString *path = [NSString string];\n            path = [imageBundle pathForResource:[NSString stringWithFormat:@\"BBUserGuider%1d@2x\",i] ofType:@\"png\" inDirectory:@\"GuiderImage\"];\n            imageView.image = [UIImage imageWithContentsOfFile:path];\n            [_userGuiderScrollView  addSubview:imageView];\n            if (i==kBBUserGuiderImgCount-1) {\n                imageView.userInteractionEnabled = YES;\n                self.userGuiderImgView=imageView;\n                [imageView addSubview:self.startBtn];\n            }\n            \n            _userGuiderScrollView.contentSize=CGSizeMake((kBBUserGuiderImgCount+1)*(self.view.frame.size.width), self.view.frame.size.height);\n            _userGuiderScrollView.pagingEnabled=YES;\n            _userGuiderScrollView.showsVerticalScrollIndicator=NO;\n            _userGuiderScrollView.showsHorizontalScrollIndicator=NO;\n            _userGuiderScrollView.bounces=NO;\n            _userGuiderScrollView.delegate = self;\n        }\n    }\n    \n    return _userGuiderScrollView;\n}\n\n-(UIButton *)startBtn{\n    if (!_startBtn) {\n        _startBtn=[[UIButton  alloc] init];\n        _startBtn.backgroundColor = [UIColor clearColor];\n        _startBtn.frame = self.view.frame;\n        [_startBtn  addTarget:self action:@selector(startClick) forControlEvents: UIControlEventTouchUpInside];\n    }\n    return  _startBtn;\n    \n}\n\n\n- (void)scrollViewDidScroll:(UIScrollView *)scrollView{\n    if (scrollView.contentOffset.x > (kBBUserGuiderImgCount - 1)*(self.view.frame.size.width)) {\n        [self startClick];\n    }\n}\n\n//此处为 替换 rootViewController\n- (void)startClick{\n    [[AppDelegate shareAppDelegate] setupRootViewController:[[BBTabBarController alloc] init]];\n}\n\n\n- (void)didReceiveMemoryWarning {\n    [super didReceiveMemoryWarning];\n    \n}\n@end\n"
  },
  {
    "path": "BBGestureBack_Full_oc/Classes/Resource/BBUserGuider.bundle/Root.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>StringsTable</key>\n\t<string>Root</string>\n\t<key>PreferenceSpecifiers</key>\n\t<array>\n\t\t<dict>\n\t\t\t<key>Type</key>\n\t\t\t<string>PSGroupSpecifier</string>\n\t\t\t<key>Title</key>\n\t\t\t<string>Group</string>\n\t\t</dict>\n\t\t<dict>\n\t\t\t<key>Type</key>\n\t\t\t<string>PSTextFieldSpecifier</string>\n\t\t\t<key>Title</key>\n\t\t\t<string>Name</string>\n\t\t\t<key>Key</key>\n\t\t\t<string>name_preference</string>\n\t\t\t<key>DefaultValue</key>\n\t\t\t<string></string>\n\t\t\t<key>IsSecure</key>\n\t\t\t<false/>\n\t\t\t<key>KeyboardType</key>\n\t\t\t<string>Alphabet</string>\n\t\t\t<key>AutocapitalizationType</key>\n\t\t\t<string>None</string>\n\t\t\t<key>AutocorrectionType</key>\n\t\t\t<string>No</string>\n\t\t</dict>\n\t\t<dict>\n\t\t\t<key>Type</key>\n\t\t\t<string>PSToggleSwitchSpecifier</string>\n\t\t\t<key>Title</key>\n\t\t\t<string>Enabled</string>\n\t\t\t<key>Key</key>\n\t\t\t<string>enabled_preference</string>\n\t\t\t<key>DefaultValue</key>\n\t\t\t<true/>\n\t\t</dict>\n\t\t<dict>\n\t\t\t<key>Type</key>\n\t\t\t<string>PSSliderSpecifier</string>\n\t\t\t<key>Key</key>\n\t\t\t<string>slider_preference</string>\n\t\t\t<key>DefaultValue</key>\n\t\t\t<real>0.5</real>\n\t\t\t<key>MinimumValue</key>\n\t\t\t<integer>0</integer>\n\t\t\t<key>MaximumValue</key>\n\t\t\t<integer>1</integer>\n\t\t\t<key>MinimumValueImage</key>\n\t\t\t<string></string>\n\t\t\t<key>MaximumValueImage</key>\n\t\t\t<string></string>\n\t\t</dict>\n\t</array>\n\t<key>ApplicationGroupContainerIdentifier</key>\n\t<string></string>\n</dict>\n</plist>\n"
  },
  {
    "path": "BBGestureBack_Full_oc/Classes/User/Index/UserViewController.h",
    "content": "//  希望您的举手之劳，能为我点颗赞，谢谢~\n//  代码地址: https://github.com/Bonway/BBGestureBack\n//  BBGestureBack\n//  Created by Bonway on 2016/3/17.\n//  Copyright © 2016年 Bonway. All rights reserved.\n//\n\n\n#import <UIKit/UIKit.h>\n#import \"BBGestureBaseController.h\"\n\n@interface UserViewController : BBGestureBaseController\n\n@end\n"
  },
  {
    "path": "BBGestureBack_Full_oc/Classes/User/Index/UserViewController.m",
    "content": "//  希望您的举手之劳，能为我点颗赞，谢谢~\n//  代码地址: https://github.com/Bonway/BBGestureBack\n//  BBGestureBack\n//  Created by Bonway on 2016/3/17.\n//  Copyright © 2016年 Bonway. All rights reserved.\n//\n\n\n#import \"UserViewController.h\"\n\n@interface UserViewController ()\n\n@end\n\n@implementation UserViewController\n\n- (void)viewDidLoad {\n    [super viewDidLoad];\n    \n}\n\n- (void)didReceiveMemoryWarning {\n    [super didReceiveMemoryWarning];\n    \n}\n\n\n@end\n"
  },
  {
    "path": "BBGestureBack_Full_oc/Info.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>UIUserInterfaceStyle</key>\n\t<string>Light</string>\n\t<key>CFBundleDevelopmentRegion</key>\n\t<string>$(DEVELOPMENT_LANGUAGE)</string>\n\t<key>CFBundleExecutable</key>\n\t<string>$(EXECUTABLE_NAME)</string>\n\t<key>CFBundleIdentifier</key>\n\t<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>\n\t<key>CFBundleInfoDictionaryVersion</key>\n\t<string>6.0</string>\n\t<key>CFBundleName</key>\n\t<string>$(PRODUCT_NAME)</string>\n\t<key>CFBundlePackageType</key>\n\t<string>APPL</string>\n\t<key>CFBundleShortVersionString</key>\n\t<string>1.0</string>\n\t<key>CFBundleVersion</key>\n\t<string>1</string>\n\t<key>LSRequiresIPhoneOS</key>\n\t<true/>\n\t<key>UILaunchStoryboardName</key>\n\t<string>LaunchScreen</string>\n\t<key>UIRequiredDeviceCapabilities</key>\n\t<array>\n\t\t<string>armv7</string>\n\t</array>\n\t<key>UISupportedInterfaceOrientations</key>\n\t<array>\n\t\t<string>UIInterfaceOrientationPortrait</string>\n\t</array>\n\t<key>UISupportedInterfaceOrientations~ipad</key>\n\t<array>\n\t\t<string>UIInterfaceOrientationPortrait</string>\n\t\t<string>UIInterfaceOrientationPortraitUpsideDown</string>\n\t\t<string>UIInterfaceOrientationLandscapeLeft</string>\n\t\t<string>UIInterfaceOrientationLandscapeRight</string>\n\t</array>\n</dict>\n</plist>\n"
  },
  {
    "path": "BBGestureBack_Full_oc/main.m",
    "content": "//\n//  main.m\n//  BBGestureBack\n//\n//  Created by user on 2018/3/17.\n//  Copyright © 2018年 Bonway. All rights reserved.\n//\n\n#import <UIKit/UIKit.h>\n#import \"AppDelegate.h\"\n\nint main(int argc, char * argv[]) {\n    @autoreleasepool {\n        return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));\n    }\n}\n"
  },
  {
    "path": "BBGestureBack_Full_swift/Assets.xcassets/AppIcon.appiconset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"size\" : \"20x20\",\n      \"idiom\" : \"iphone\",\n      \"filename\" : \"20@2x-1.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"size\" : \"20x20\",\n      \"idiom\" : \"iphone\",\n      \"filename\" : \"20@3x.png\",\n      \"scale\" : \"3x\"\n    },\n    {\n      \"size\" : \"29x29\",\n      \"idiom\" : \"iphone\",\n      \"filename\" : \"29@2x-1.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"size\" : \"29x29\",\n      \"idiom\" : \"iphone\",\n      \"filename\" : \"29@3x.png\",\n      \"scale\" : \"3x\"\n    },\n    {\n      \"size\" : \"40x40\",\n      \"idiom\" : \"iphone\",\n      \"filename\" : \"40@2x-1.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"size\" : \"40x40\",\n      \"idiom\" : \"iphone\",\n      \"filename\" : \"40@3x.png\",\n      \"scale\" : \"3x\"\n    },\n    {\n      \"size\" : \"60x60\",\n      \"idiom\" : \"iphone\",\n      \"filename\" : \"60@2x.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"size\" : \"60x60\",\n      \"idiom\" : \"iphone\",\n      \"filename\" : \"60@3x.png\",\n      \"scale\" : \"3x\"\n    },\n    {\n      \"size\" : \"20x20\",\n      \"idiom\" : \"ipad\",\n      \"filename\" : \"20@1x.png\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"size\" : \"20x20\",\n      \"idiom\" : \"ipad\",\n      \"filename\" : \"20@2x.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"size\" : \"29x29\",\n      \"idiom\" : \"ipad\",\n      \"filename\" : \"29@1x.png\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"size\" : \"29x29\",\n      \"idiom\" : \"ipad\",\n      \"filename\" : \"29@2x.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"size\" : \"40x40\",\n      \"idiom\" : \"ipad\",\n      \"filename\" : \"40@1x.png\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"size\" : \"40x40\",\n      \"idiom\" : \"ipad\",\n      \"filename\" : \"40@2x.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"size\" : \"76x76\",\n      \"idiom\" : \"ipad\",\n      \"filename\" : \"76@1x.png\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"size\" : \"76x76\",\n      \"idiom\" : \"ipad\",\n      \"filename\" : \"76@2x.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"size\" : \"83.5x83.5\",\n      \"idiom\" : \"ipad\",\n      \"filename\" : \"83.5@2x.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"size\" : \"1024x1024\",\n      \"idiom\" : \"ios-marketing\",\n      \"filename\" : \"1024@1x.png\",\n      \"scale\" : \"1x\"\n    }\n  ],\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "BBGestureBack_Full_swift/Assets.xcassets/Contents.json",
    "content": "{\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "BBGestureBack_Full_swift/Assets.xcassets/Navigation/Contents.json",
    "content": "{\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "BBGestureBack_Full_swift/Assets.xcassets/Navigation/bb_navigation_back.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"bb_navigation_back@2x.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"bb_navigation_back@3x.png\",\n      \"scale\" : \"3x\"\n    }\n  ],\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "BBGestureBack_Full_swift/Assets.xcassets/TabBar/Contents.json",
    "content": "{\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "BBGestureBack_Full_swift/Assets.xcassets/TabBar/TabBarHomeNormal.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"TabBarHomeNormal@2x.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"TabBarHomeNormal@3x.png\",\n      \"scale\" : \"3x\"\n    }\n  ],\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "BBGestureBack_Full_swift/Assets.xcassets/TabBar/TabBarHomeSelected.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"TabBarHomeSelected@2x.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"TabBarHomeSelected@3x.png\",\n      \"scale\" : \"3x\"\n    }\n  ],\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "BBGestureBack_Full_swift/Assets.xcassets/TabBar/TabBarUserNormal.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"TabBarUserNormal@2x.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"TabBarUserNormal@3x.png\",\n      \"scale\" : \"3x\"\n    }\n  ],\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "BBGestureBack_Full_swift/Assets.xcassets/TabBar/TabBarUserSelected.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"TabBarUserSelected@2x.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"TabBarUserSelected@3x.png\",\n      \"scale\" : \"3x\"\n    }\n  ],\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "BBGestureBack_Full_swift/Assets.xcassets/logo.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"logo@2x.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"logo@3x.png\",\n      \"scale\" : \"3x\"\n    }\n  ],\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "BBGestureBack_Full_swift/Base.lproj/LaunchScreen.storyboard",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB\" version=\"3.0\" toolsVersion=\"14109\" targetRuntime=\"iOS.CocoaTouch\" propertyAccessControl=\"none\" useAutolayout=\"YES\" launchScreen=\"YES\" colorMatched=\"YES\" initialViewController=\"01J-lp-oVM\">\n    <device id=\"retina4_7\" orientation=\"portrait\">\n        <adaptation id=\"fullscreen\"/>\n    </device>\n    <dependencies>\n        <deployment identifier=\"iOS\"/>\n        <plugIn identifier=\"com.apple.InterfaceBuilder.IBCocoaTouchPlugin\" version=\"14088\"/>\n        <capability name=\"Constraints to layout margins\" minToolsVersion=\"6.0\"/>\n        <capability name=\"documents saved in the Xcode 8 format\" minToolsVersion=\"8.0\"/>\n    </dependencies>\n    <scenes>\n        <!--View Controller-->\n        <scene sceneID=\"EHf-IW-A2E\">\n            <objects>\n                <viewController id=\"01J-lp-oVM\" sceneMemberID=\"viewController\">\n                    <layoutGuides>\n                        <viewControllerLayoutGuide type=\"top\" id=\"wJ6-tn-oZ6\"/>\n                        <viewControllerLayoutGuide type=\"bottom\" id=\"brw-ND-DR7\"/>\n                    </layoutGuides>\n                    <view key=\"view\" contentMode=\"scaleToFill\" id=\"Ze5-6b-2t3\">\n                        <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"375\" height=\"667\"/>\n                        <autoresizingMask key=\"autoresizingMask\" widthSizable=\"YES\" heightSizable=\"YES\"/>\n                        <subviews>\n                            <imageView userInteractionEnabled=\"NO\" contentMode=\"scaleToFill\" horizontalHuggingPriority=\"251\" verticalHuggingPriority=\"251\" image=\"logo\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"7fk-3g-lDI\">\n                                <rect key=\"frame\" x=\"67\" y=\"213.5\" width=\"240\" height=\"240\"/>\n                                <constraints>\n                                    <constraint firstAttribute=\"height\" constant=\"240\" id=\"lbg-7s-TM8\"/>\n                                    <constraint firstAttribute=\"width\" constant=\"240\" id=\"opV-cn-Xl0\"/>\n                                </constraints>\n                            </imageView>\n                            <label opaque=\"NO\" userInteractionEnabled=\"NO\" contentMode=\"left\" horizontalHuggingPriority=\"251\" verticalHuggingPriority=\"251\" text=\"您可以为我点个赞吗？\" textAlignment=\"center\" lineBreakMode=\"tailTruncation\" baselineAdjustment=\"alignBaselines\" adjustsFontSizeToFit=\"NO\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"LMs-9Q-pEN\">\n                                <rect key=\"frame\" x=\"16\" y=\"473.5\" width=\"343\" height=\"21\"/>\n                                <constraints>\n                                    <constraint firstAttribute=\"height\" constant=\"21\" id=\"IiF-NU-D1J\"/>\n                                </constraints>\n                                <fontDescription key=\"fontDescription\" type=\"system\" pointSize=\"22\"/>\n                                <nil key=\"highlightedColor\"/>\n                            </label>\n                        </subviews>\n                        <color key=\"backgroundColor\" white=\"1\" alpha=\"1\" colorSpace=\"custom\" customColorSpace=\"genericGamma22GrayColorSpace\"/>\n                        <constraints>\n                            <constraint firstItem=\"LMs-9Q-pEN\" firstAttribute=\"top\" secondItem=\"7fk-3g-lDI\" secondAttribute=\"bottom\" constant=\"20\" id=\"4pq-RP-mNf\"/>\n                            <constraint firstItem=\"LMs-9Q-pEN\" firstAttribute=\"leading\" secondItem=\"Ze5-6b-2t3\" secondAttribute=\"leadingMargin\" id=\"CPs-4w-sCY\"/>\n                            <constraint firstItem=\"7fk-3g-lDI\" firstAttribute=\"centerY\" secondItem=\"Ze5-6b-2t3\" secondAttribute=\"centerY\" id=\"JdY-mR-UbN\"/>\n                            <constraint firstItem=\"7fk-3g-lDI\" firstAttribute=\"centerX\" secondItem=\"Ze5-6b-2t3\" secondAttribute=\"centerX\" id=\"etK-3r-Gum\"/>\n                            <constraint firstAttribute=\"trailingMargin\" secondItem=\"LMs-9Q-pEN\" secondAttribute=\"trailing\" id=\"nVr-AX-uZf\"/>\n                        </constraints>\n                    </view>\n                </viewController>\n                <placeholder placeholderIdentifier=\"IBFirstResponder\" id=\"iYj-Kq-Ea1\" userLabel=\"First Responder\" sceneMemberID=\"firstResponder\"/>\n            </objects>\n            <point key=\"canvasLocation\" x=\"32.5\" y=\"416.5\"/>\n        </scene>\n    </scenes>\n    <resources>\n        <image name=\"logo\" width=\"200\" height=\"200\"/>\n    </resources>\n</document>\n"
  },
  {
    "path": "BBGestureBack_Full_swift/Classes/Home/Index/HomeViewController.swift",
    "content": "//  希望您的举手之劳，能为我点颗赞，谢谢~\n//  代码地址: https://github.com/Bonway/BBGestureBack\n//  BBGestureBack\n//  Created by Bonway on 2016/3/17.\n//  Copyright © 2016年 Bonway. All rights reserved.\n//\n\nimport UIKit\n\nclass HomeViewController: BBGestureBaseController {\n\n    override func viewDidLoad() {\n        super.viewDidLoad()\n\n        //iOS12.1 UINavigationController + UITabBarController（ UITabBar 磨砂），在 系统的 popViewControllerAnimated 会遇到tabbar布局错乱的问题，所以需添加以下方法。\n        //当然你也可以自己选择添加到底层的navigationController或 baseViewController中，进行处理。\n        UITabBar.appearance().isTranslucent = false\n        //---------------------------------------\n        \n        let btn = UIButton()\n        btn.frame = CGRect(x: 100, y: 100, width: 100, height: 100)\n        \n        btn.backgroundColor = UIColor.blue\n        btn.setTitle(\"sysPush\", for: UIControlState.normal)\n        btn.addTarget(self, action: #selector(pushClick), for: UIControlEvents.touchUpInside)\n        \n        self.view.addSubview(btn)\n        \n    }\n\n    override func didReceiveMemoryWarning() {\n        super.didReceiveMemoryWarning()\n        \n    }\n    \n    @objc func pushClick() {\n        self.navigationController?.pushViewController(ViewController(), animated: true)\n    }\n\n\n}\n"
  },
  {
    "path": "BBGestureBack_Full_swift/Classes/Home/ViewController.swift",
    "content": "//  希望您的举手之劳，能为我点颗赞，谢谢~\n//  代码地址: https://github.com/Bonway/BBGestureBack\n//  BBGestureBack\n//  Created by Bonway on 2016/3/17.\n//  Copyright © 2016年 Bonway. All rights reserved.\n//\n\nimport UIKit\n\nclass ViewController: BBGestureBaseController {\n\n    override func viewDidLoad() {\n        super.viewDidLoad()\n        \n        let popBtn = UIButton()\n        popBtn.frame = CGRect(x: 100, y: 100, width: 150, height: 50)\n        popBtn.backgroundColor = UIColor.red\n        popBtn.setTitle(\"BBPop\", for: UIControlState.normal)\n        popBtn.addTarget(self, action: #selector(popClick), for: UIControlEvents.touchUpInside)\n        self.view.addSubview(popBtn)\n        \n        let popToVCBtn = UIButton()\n        popToVCBtn.frame = CGRect(x: 100, y: 200, width: 150, height: 50)\n        \n        popToVCBtn.backgroundColor = UIColor.red\n        popToVCBtn.setTitle(\"BBPopToVC\", for: UIControlState.normal)\n        popToVCBtn.addTarget(self, action: #selector(popToClick), for: UIControlEvents.touchUpInside)\n        self.view.addSubview(popToVCBtn)\n        \n        let popToRootBtn = UIButton()\n        popToRootBtn.frame = CGRect(x: 100, y: 300, width: 150, height: 50)\n        popToRootBtn.backgroundColor = UIColor.red\n        popToRootBtn.setTitle(\"BBPopToRootVC\", for: UIControlState.normal)\n        popToRootBtn.addTarget(self, action: #selector(popToRootClick), for: UIControlEvents.touchUpInside)\n        self.view.addSubview(popToRootBtn)\n        \n        let sysPopBtn = UIButton()\n        sysPopBtn.frame = CGRect(x: 100, y: 400, width: 150, height: 50)\n        sysPopBtn.backgroundColor = UIColor.blue\n        sysPopBtn.setTitle(\"sysPop\", for: UIControlState.normal)\n        sysPopBtn.addTarget(self, action: #selector(sysPopClick), for: UIControlEvents.touchUpInside)\n        self.view.addSubview(sysPopBtn)\n    }\n\n    @objc func popClick() {\n        self.bb_popViewController();\n    }\n    \n    @objc func popToClick() {\n        self.bb_popToViewController(viewController: (self.navigationController?.viewControllers[0])!)\n    }\n    \n    @objc func popToRootClick() {\n        self.bb_popToRootViewController()\n    }\n    \n    @objc func sysPopClick() {\n        self.navigationController?.popViewController(animated: true)\n    }\n    \n    \n    override func didReceiveMemoryWarning() {\n        super.didReceiveMemoryWarning()\n        \n    }\n\n\n}\n\n"
  },
  {
    "path": "BBGestureBack_Full_swift/Classes/Main/AppDelegate.swift",
    "content": "//  希望您的举手之劳，能为我点颗赞，谢谢~\n//  代码地址: https://github.com/Bonway/BBGestureBack\n//  BBGestureBack\n//  Created by Bonway on 2016/3/17.\n//  Copyright © 2016年 Bonway. All rights reserved.\n//\n\nimport UIKit\n\n@UIApplicationMain\nclass AppDelegate: UIResponder, UIApplicationDelegate {\n\n    var window: UIWindow?\n    var gestureBaseView: BBGestureBaseView?\n    var tabBarViewController : BBTabBarController?\n\n\n    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {\n        \n        window = UIWindow(frame: UIScreen.main.bounds)\n        window?.backgroundColor = UIColor.white\n        \n        setupRootController();\n        \n        \n        window?.makeKeyAndVisible()\n        \n        return true\n    }\n\n    func applicationWillResignActive(_ application: UIApplication) {\n        // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.\n        // Use this method to pause ongoing tasks, disable timers, and invalidate graphics rendering callbacks. Games should use this method to pause the game.\n    }\n\n    func applicationDidEnterBackground(_ application: UIApplication) {\n        // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.\n        // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.\n    }\n\n    func applicationWillEnterForeground(_ application: UIApplication) {\n        // Called as part of the transition from the background to the active state; here you can undo many of the changes made on entering the background.\n    }\n\n    func applicationDidBecomeActive(_ application: UIApplication) {\n        // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.\n    }\n\n    func applicationWillTerminate(_ application: UIApplication) {\n        // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.\n    }\n\n\n    private func setupRootController(){\n        \n        \n        if !UserDefaults.standard.bool(forKey: kBBFirstLaunch) {\n            UserDefaults.standard.set(true, forKey: kBBFirstLaunch)\n            setupRootViewController(rootViewController: BBUserGuiderController())\n        }else{\n            setupRootViewController(rootViewController: BBTabBarController())\n        }\n        \n    }\n    \n    public func setupRootViewController(rootViewController:UIViewController) {\n        \n        rootViewController.modalTransitionStyle = .flipHorizontal\n        UIView.transition(with: window!, duration: 0.5, options: .transitionCrossDissolve, animations: {\n            \n            let oldState = UIView.areAnimationsEnabled\n            UIView.setAnimationsEnabled(false)\n            UIApplication.shared.keyWindow?.rootViewController = rootViewController\n            UIView.setAnimationsEnabled(oldState)\n        \n        }, completion: { completed in\n            \n        })\n        \n        if gestureBaseView == nil {\n            window?.rootViewController = rootViewController\n            gestureBaseView = BBGestureBaseView.init(frame: CGRect(x: 0, y: 0, width: (window?.frame.size.width)!, height: (window?.frame.size.height)!))\n            window?.insertSubview(gestureBaseView!, at: 0)\n        }else{\n            gestureBaseView!.removeObserver()\n            window?.rootViewController = rootViewController\n            gestureBaseView!.addObserver()\n            window?.sendSubview(toBack: gestureBaseView!)\n        }\n        \n        gestureBaseView?.isHidden = true;\n        \n    }\n    \n    \n}\n\n"
  },
  {
    "path": "BBGestureBack_Full_swift/Classes/Main/BBGestureBack/BBGestureBackConst.swift",
    "content": "//  希望您的举手之劳，能为我点颗赞，谢谢~\n//  代码地址: https://github.com/Bonway/BBGestureBack\n//  BBGestureBack\n//  Created by Bonway on 2016/3/17.\n//  Copyright © 2016年 Bonway. All rights reserved.\n//\n\nimport UIKit\n\n\nfunc BBColor(rgbValue: UInt) -> UIColor {\n    return UIColor(\n        red: CGFloat((rgbValue & 0xFF0000) >> 16) / 255.0,\n        green: CGFloat((rgbValue & 0x00FF00) >> 8) / 255.0,\n        blue: CGFloat(rgbValue & 0x0000FF) / 255.0,\n        alpha: CGFloat(1.0)\n    )\n}\nlet bbScreenWidth = UIScreen.main.bounds.width\n/// 屏幕的高度\nlet bbScreenHeight = UIScreen.main.bounds.height\nlet bb_IsIphone = (bbScreenHeight - 812 == 0 || bbScreenHeight - 896 == 0) ? true : false\n\n//The ifrst user guider image (第一次引导图)\nlet kBBFirstLaunch:String = \"BBFirstLaunch\"\n// Open iPhone X Style.（是否打开Phone X风格）\nlet kBBIsOpenIphoneXStyle:Bool = true\n// The default is 40， iPhone X Style Corner。（默认为40，iPhone X 圆角弧度）\nlet kBBIphoneXStyleCorner:CGFloat! = 40\n// The default is 3， User guider image count。（默认为3，用户引导图总页数）\nlet kBBUserGuiderImgCount:Int = 3\n// Screen system to return gesture.（是否屏蔽系统返回手势）\nlet kBBIsCanleSystemPan:Bool = true\n// The distance from the left can be automatically returned.(距离左边多少距离，可以自动返回)\nlet kBBDistanceToLeft:CGFloat! = 70.0\n// BottomView Scaling.(底层缩放比例)\nlet kBBWindowToScale:CGFloat! = 0.95\n// BottomView alpha.(底层透明度)\nlet kBBMaskingAlpha:CGFloat! = 0.9\n// Automatic return speed.(自动返回速度)\nlet kBBGestureSpeed:TimeInterval! = 0.3\n// Range of drag and drop.(拖拽的范围,大于此值才有效果)\nlet kBBDistanceToPan:CGFloat! = 10\n// The default is 0, 0 for full screen return, and also for distance.（默认为0，0为全屏返回，也可指定距离）\nlet kBBDistanceToStart:CGFloat! = 100\n"
  },
  {
    "path": "BBGestureBack_Full_swift/Classes/Main/BBGestureBack/BBGestureBaseController.swift",
    "content": "//  希望您的举手之劳，能为我点颗赞，谢谢~\n//  代码地址: https://github.com/Bonway/BBGestureBack\n//  BBGestureBack\n//  Created by Bonway on 2016/3/17.\n//  Copyright © 2016年 Bonway. All rights reserved.\n//\n\nimport UIKit\n\nenum BBPopType:Int{\n    case viewController = 0\n    case toViewController\n    case toRootViewController\n}\n\nclass BBGestureBaseController: UIViewController {\n\n    /**\n     用了自定义的手势返回，则系统的手势返回屏蔽\n     不用自定义的手势返回，则系统的手势返回启用\n     */\n    var isEnablePanGesture : Bool\n    var blankType: BBPopType\n    \n    lazy var bbBackBarItem : UIBarButtonItem = {\n        \n        let backBtn = UIButton(type: .custom)\n        backBtn.setImage(UIImage(named: \"bb_navigation_back\"), for: .normal)\n        backBtn.imageView?.contentMode = .center\n        backBtn.addTarget(self, action: #selector(dismissSelf), for: .touchUpInside)\n        backBtn.frame = CGRect(x: 0, y: 0, width: 44, height: 44)\n        backBtn.contentEdgeInsets = UIEdgeInsetsMake(0, -25, 0, 0)\n        \n        let bbBackBarItem = UIBarButtonItem(customView: backBtn)\n        return bbBackBarItem\n    }()\n    \n    @objc private func dismissSelf(){\n        switch blankType {\n        case .viewController:\n            bb_popViewController()\n            break\n        case .toRootViewController:\n            bb_popToRootViewController()\n            break\n        \n        default:\n            break\n        }\n    \n    }\n    override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: Bundle?) {\n        isEnablePanGesture = true\n        blankType = .viewController;\n        super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil)\n        \n    }\n    \n    \n    required init?(coder aDecoder: NSCoder) {\n        fatalError(\"init(coder:) has not been implemented\")\n    }\n    \n    override func viewDidLoad() {\n        super.viewDidLoad()\n        view.backgroundColor = UIColor.white\n        if navigationController?.viewControllers.count ?? 0 > 1 {\n            navigationItem.leftBarButtonItem = bbBackBarItem\n        }\n    }\n    \n    private func bb_basePopViewController(viewController: UIViewController?,popType: BBPopType) {\n        \n        let appDelegate = UIApplication.shared.delegate as! AppDelegate\n        let rootVC = appDelegate.window?.rootViewController\n        let presentedVC = rootVC?.presentedViewController\n        appDelegate.gestureBaseView?.isHidden = false;\n        \n        appDelegate.gestureBaseView?.maskedView?.backgroundColor = UIColor.init(hue: 0, saturation: 0, brightness: 0, alpha: kBBMaskingAlpha)\n        appDelegate.gestureBaseView?.imgView?.transform = CGAffineTransform(scaleX: kBBWindowToScale, y: kBBWindowToScale);\n        \n        \n        UIView.animate(withDuration: kBBGestureSpeed, animations: {\n            rootVC?.view.transform = CGAffineTransform(translationX: (UIScreen.main.bounds.size.width), y: 0);\n            presentedVC?.view.transform = CGAffineTransform(translationX: (UIScreen.main.bounds.size.width), y: 0);\n        }) { (finished) in\n            switch popType {\n                case .viewController:\n                    self.navigationController?.popViewController(animated: false)\n                case .toViewController:\n                    self.navigationController?.popToViewController(viewController!, animated: false)\n                case .toRootViewController:\n                    self.navigationController?.popToRootViewController(animated: false)\n            }\n            rootVC?.view.transform = CGAffineTransform.identity;\n            presentedVC?.view.transform = CGAffineTransform.identity;\n            appDelegate.gestureBaseView?.isHidden = true;\n        }\n        \n    }\n    \n    \n    \n    func bb_popViewController() {\n        \n        self.bb_basePopViewController(viewController: nil, popType: BBPopType.viewController)\n    }\n    \n    func bb_popToViewController(viewController: UIViewController) {\n        \n        self.bb_basePopViewController(viewController: viewController, popType: BBPopType.toViewController)\n    }\n    \n    func bb_popToRootViewController() {\n        \n        self.bb_basePopViewController(viewController: nil, popType: BBPopType.toRootViewController)\n    }\n    \n    override func didReceiveMemoryWarning() {\n        super.didReceiveMemoryWarning()\n    }\n\n}\n\n\nclass BBGestureBaseView: UIView {\n    var imgView : UIImageView?\n    var maskedView : UIView?\n    var arrayImage : NSMutableArray?\n    var rootControllerView: UIView?\n    static var bbListenTabbarViewMove = Array(\"bbListenTabbarViewMove\");\n    \n    override init(frame:CGRect){\n        super.init(frame: frame)\n        arrayImage = NSMutableArray.init()\n        backgroundColor = UIColor.black\n        imgView = UIImageView.init(frame: self.bounds)\n        \n        if (bb_IsIphone && kBBIsOpenIphoneXStyle) {\n            imgView!.layer.masksToBounds = true;\n            imgView!.layer.cornerRadius = kBBIphoneXStyleCorner;\n        }\n        \n        maskedView = UIView.init(frame: self.bounds)\n        maskedView?.backgroundColor = UIColor.init(red: 0, green: 0, blue: 0, alpha: 0.4)\n        self.addSubview(imgView!)\n        self.addSubview(maskedView!)\n        \n        addObserver()\n    }\n    \n    required init?(coder aDecoder: NSCoder) {\n        fatalError(\"init(coder:) has not been implemented\")\n    }\n    \n    override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {\n        if (context == &BBGestureBaseView.bbListenTabbarViewMove) {\n            let value = change?[NSKeyValueChangeKey.newKey] as! NSValue\n            let newTransform = value.cgAffineTransformValue\n            showEffectChange(pt: CGPoint(x: newTransform.tx, y: 0))\n        }\n    }\n    \n    override func layoutSubviews() {\n        super.layoutSubviews()\n    }\n    \n    public func showEffectChange(pt:CGPoint) {\n        if (pt.x > 0) {\n            maskedView?.backgroundColor = UIColor.init(hue: 0, saturation: 0, brightness: 0, alpha: -pt.x / UIScreen.main.bounds.width * 0.4 + 0.4)\n            self.imgView?.transform = CGAffineTransform(scaleX: kBBWindowToScale + (pt.x / UIScreen.main.bounds.width * (1 - kBBWindowToScale)), y: kBBWindowToScale + (pt.x / UIScreen.main.bounds.width * (1 - kBBWindowToScale)))\n        }\n    }\n    \n    public func restore() {\n        if ((maskedView != nil) && (imgView != nil)) {\n            maskedView?.backgroundColor = UIColor.init(hue: 0, saturation: 0, brightness: 0, alpha: 0.4)\n            imgView?.transform = CGAffineTransform(scaleX: kBBWindowToScale, y: kBBWindowToScale)\n        }\n    }\n    \n    public func screenShot() {\n        let appDelegate = UIApplication.shared.delegate as! AppDelegate\n        UIGraphicsBeginImageContextWithOptions(CGSize(width: UIScreen.main.bounds.size.width, height: UIScreen.main.bounds.size.height), true, 0)\n        appDelegate.window?.layer.render(in: UIGraphicsGetCurrentContext()!)\n        let viewImage = UIGraphicsGetImageFromCurrentImageContext();\n        UIGraphicsEndImageContext()\n        let imageRef = viewImage?.cgImage\n        let sendImage = UIImage.init(cgImage: imageRef!)\n        imgView?.image = sendImage\n        imgView?.transform = CGAffineTransform(scaleX: kBBWindowToScale, y: kBBWindowToScale)\n    }\n    \n    public func removeObserver(){\n        \n        rootControllerView?.removeObserver(self, forKeyPath: \"transform\", context: &BBGestureBaseView.bbListenTabbarViewMove)\n    }\n    public func addObserver(){\n        rootControllerView = UIApplication.shared.delegate?.window??.rootViewController?.view\n        rootControllerView?.addObserver(self, forKeyPath: \"transform\", options: NSKeyValueObservingOptions.new, context: &BBGestureBaseView.bbListenTabbarViewMove)\n    }\n    \n    deinit {\n        removeObserver()\n    }\n}\n"
  },
  {
    "path": "BBGestureBack_Full_swift/Classes/Main/BBNavigation/BBNavigationController.swift",
    "content": "//  希望您的举手之劳，能为我点颗赞，谢谢~\n//  代码地址: https://github.com/Bonway/BBGestureBack\n//  BBGestureBack\n//  Created by Bonway on 2016/3/17.\n//  Copyright © 2016年 Bonway. All rights reserved.\n//\n\nimport UIKit\n\nclass BBNavigationController: UINavigationController,UIGestureRecognizerDelegate,UINavigationControllerDelegate{\n\n    var arrayScreenshot : NSMutableArray!\n    var panGesture : UIPanGestureRecognizer?\n    var webURL : String = \"\"\n    \n    override func viewDidLoad() {\n        super.viewDidLoad()\n        \n        self.interactivePopGestureRecognizer?.isEnabled = !kBBIsCanleSystemPan\n        \n        arrayScreenshot = NSMutableArray.init()\n        panGesture = UIPanGestureRecognizer(target: self, action: #selector(handlePanGesture(_:)))\n        view.addGestureRecognizer(panGesture!)\n        panGesture?.delegate = self\n    }\n    \n    override func didReceiveMemoryWarning() {\n        super.didReceiveMemoryWarning()\n    }\n    \n    func gestureRecognizerShouldBegin(_ gestureRecognizer: UIGestureRecognizer) -> Bool {\n        \n        if (gestureRecognizer.view == self.view && gestureRecognizer.location(in: view).x < (kBBDistanceToStart == 0 ? UIScreen.main.bounds.width : kBBDistanceToStart)) {\n            let topView = topViewController as! BBGestureBaseController\n            if (!topView.isEnablePanGesture) {\n                return false;\n            } else {\n                let gesture = gestureRecognizer as! UIPanGestureRecognizer\n                let translate = gesture.translation(in :view)\n                let possible = translate.x != 0 && fabs(translate.y) == 0;\n                \n                if (possible){\n                    return true\n                }else {\n                    return false\n                }\n            }\n        }\n        return false\n    }\n    \n    func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWith otherGestureRecognizer: UIGestureRecognizer) -> Bool {\n        if otherGestureRecognizer.isKind(of: NSClassFromString(\"UIScrollViewPanGestureRecognizer\")!) || otherGestureRecognizer.isKind(of: NSClassFromString(\"UIPanGestureRecognizer\")!) || otherGestureRecognizer.isKind(of: NSClassFromString(\"UIScrollViewPagingSwipeGestureRecognizer\")!) {\n            \n            let aView = otherGestureRecognizer.view\n            if aView!.isKind(of: UIScrollView.self) {\n                let sv = aView as! UIScrollView\n                if sv.contentOffset.x == 0 {\n                    \n                    if otherGestureRecognizer.isKind(of: NSClassFromString(\"UIScrollViewPanGestureRecognizer\")!) && otherGestureRecognizer.state != .began {\n                        return false\n                    }\n                    \n                    return true\n                    \n                }\n            }\n            \n            return false\n        }\n        return true\n    }\n    \n    @objc func handlePanGesture(_ panGesture : UIPanGestureRecognizer) {\n        let appDelegate = UIApplication.shared.delegate as! AppDelegate\n        let rootVC = appDelegate.window?.rootViewController\n        let presentedVC = rootVC?.presentedViewController\n        \n        \n        \n        if (self.viewControllers.count == 1) {\n            return\n        }\n        if (panGesture.state == UIGestureRecognizerState.began) {\n            \n            if (bb_IsIphone && kBBIsOpenIphoneXStyle) {\n                rootVC?.view.layer.masksToBounds = true;\n                rootVC?.view.layer.cornerRadius = kBBIphoneXStyleCorner;\n                presentedVC?.view.layer.masksToBounds = true;\n                presentedVC?.view.layer.cornerRadius = kBBIphoneXStyleCorner;\n            }\n            \n            appDelegate.gestureBaseView?.isHidden = false;\n        }\n        else if (panGesture.state == UIGestureRecognizerState.changed) {\n            let point_inView = panGesture.translation(in: view)\n            if (point_inView.x >= 10) {\n                rootVC?.view.transform = CGAffineTransform(translationX: point_inView.x - 10, y: 0)\n                presentedVC?.view.transform = CGAffineTransform(translationX: point_inView.x - 10, y: 0)\n            }\n        }\n        else if (panGesture.state == UIGestureRecognizerState.ended) {\n            \n            let point_inView = panGesture.translation(in: view)\n            if (point_inView.x >= kBBDistanceToLeft) {\n                UIView.animate(withDuration: 0.3, animations: {\n                    rootVC?.view.transform = CGAffineTransform(translationX: UIScreen.main.bounds.size.width, y: 0)\n                    presentedVC?.view.transform = CGAffineTransform(translationX: UIScreen.main.bounds.size.width, y: 0)\n                }, completion: { (true) in\n                    self.popViewController(animated: false)\n                    rootVC?.view.transform = CGAffineTransform.identity\n                    presentedVC?.view.transform = CGAffineTransform.identity\n                    appDelegate.gestureBaseView?.isHidden = true\n                })\n            } else {\n                UIView.animate(withDuration: 0.3, animations: {\n                    rootVC?.view.transform = CGAffineTransform.identity\n                    presentedVC?.view.transform = CGAffineTransform.identity\n                }, completion: { (true) in\n                    \n                    if (bb_IsIphone && kBBIsOpenIphoneXStyle) {\n                        rootVC?.view.layer.masksToBounds = false;\n                        rootVC?.view.layer.cornerRadius = 0;\n                        presentedVC?.view.layer.masksToBounds = false;\n                        presentedVC?.view.layer.cornerRadius = 0;\n                    }\n                    appDelegate.gestureBaseView?.isHidden = true\n                })\n            }\n        }\n        \n    }\n    \n    override func pushViewController(_ viewController: UIViewController, animated: Bool) {\n        if (viewControllers.count == 0) {\n            return super.pushViewController(viewController, animated: animated)\n        }else if (viewControllers.count>=1) {\n            viewController.hidesBottomBarWhenPushed = true//隐藏二级页面的tabbar\n        }\n        let appDelegate = UIApplication.shared.delegate as! AppDelegate\n        UIGraphicsBeginImageContextWithOptions(CGSize(width: UIScreen.main.bounds.size.width, height: UIScreen.main.bounds.size.height), true, 0);\n        appDelegate.window?.layer.render(in: UIGraphicsGetCurrentContext()!)\n        let image = UIGraphicsGetImageFromCurrentImageContext()\n        UIGraphicsEndImageContext()\n        arrayScreenshot.add(image!)\n        appDelegate.gestureBaseView?.imgView?.image = image\n        super.pushViewController(viewController, animated: animated)\n    }\n    \n    @discardableResult\n    override func popViewController(animated: Bool) -> UIViewController? {\n        let appDelegate = UIApplication.shared.delegate as! AppDelegate\n        arrayScreenshot.removeLastObject()\n        let image = arrayScreenshot.lastObject\n        if (image != nil) {\n            appDelegate.gestureBaseView?.imgView?.image = image as! UIImage?;\n        }\n        return super.popViewController(animated: animated)\n    }\n    \n    override func popToRootViewController(animated: Bool) -> [UIViewController]? {\n        let appDelegate = UIApplication.shared.delegate as! AppDelegate\n        if (arrayScreenshot.count > 2) {\n            arrayScreenshot.removeObjects(in: NSMakeRange(1, arrayScreenshot.count - 1))\n        }\n        let image = arrayScreenshot.lastObject\n        if (image != nil) {\n            appDelegate.gestureBaseView?.imgView?.image = image as! UIImage?\n        }\n        return super.popToRootViewController(animated: animated)\n    }\n    \n    @discardableResult\n    override func popToViewController(_ viewController: UIViewController, animated: Bool) -> [UIViewController]? {\n        let arr = super.popToViewController(viewController, animated: animated)\n        if (self.arrayScreenshot.count > (arr?.count)!) {\n            for _ in 0  ..< (arr?.count)! {\n                arrayScreenshot.removeLastObject()\n            }\n        }\n        return arr;\n    }\n}\n"
  },
  {
    "path": "BBGestureBack_Full_swift/Classes/Main/BBTabBar/BBTabBarController.swift",
    "content": "//  希望您的举手之劳，能为我点颗赞，谢谢~\n//  代码地址: https://github.com/Bonway/BBGestureBack\n//  BBGestureBack\n//  Created by Bonway on 2016/3/17.\n//  Copyright © 2016年 Bonway. All rights reserved.\n//\nimport UIKit\n\nclass BBTabBarController: UITabBarController {\n\n    override func viewDidLoad() {\n        super.viewDidLoad()\n        setUpAllChildViewController()\n        \n        //iOS 闪动问题，明白了一看就懂\n        UITabBar.appearance().isTranslucent = false\n        UINavigationBar.appearance().isTranslucent = false\n        self.tabBar.tintColor = UIColor.blue\n        self.tabBar.barTintColor = UIColor .white\n    }\n\n    func setUpAllChildViewController() {\n        setUpOneChildViewController(vc: HomeViewController(), image: UIImage(named:  \"TabBarHomeNormal\")!, selectedImage: UIImage(named: \"TabBarHomeSelected\")!, title: \"Home\")\n        setUpOneChildViewController(vc: UserViewController(), image: UIImage(named:  \"TabBarUserNormal\")!, selectedImage: UIImage(named: \"TabBarUserSelected\")!, title: \"User\")\n    }\n    \n    func setUpOneChildViewController(vc:UIViewController,image:UIImage,selectedImage:UIImage,title:String) {\n\n        vc.title = title\n        vc.tabBarItem.image = image\n        vc.tabBarItem.selectedImage = image\n        let navVC = BBNavigationController(rootViewController: vc)\n        addChildViewController(navVC)\n    }\n\n    \n    override func didReceiveMemoryWarning() {\n        super.didReceiveMemoryWarning()\n        \n    }\n    \n\n}\n"
  },
  {
    "path": "BBGestureBack_Full_swift/Classes/Main/BBUserGuider/BBUserGuiderController.swift",
    "content": "//  希望您的举手之劳，能为我点颗赞，谢谢~\n//  代码地址: https://github.com/Bonway/BBGestureBack\n//  BBGestureBack\n//  Created by Bonway on 2016/3/17.\n//  Copyright © 2016年 Bonway. All rights reserved.\n//\n\nimport UIKit\n\nclass BBUserGuiderController: BBGestureBaseController {\n\n    lazy var userGuiderScrollView: UIScrollView = {\n        \n        let userGuiderScrollView = UIScrollView(frame: view.bounds)\n        let fileStr = Bundle.main.path(forResource: \"BBUserGuider\", ofType: \"bundle\")\n        let imageBundle = Bundle(path: fileStr!)\n        \n        for i in 0..<kBBUserGuiderImgCount {\n            let imageView: UIImageView = UIImageView.init(frame: CGRect(x: (view.frame.size.width) * CGFloat(i) ,y: 0, width: view.frame.size.width, height: view.frame.size.height))\n            let path = imageBundle?.path(forResource: \"BBUserGuider\\(i)@2x\", ofType: \"png\", inDirectory: \"GuiderImage\")\n            imageView.image = UIImage.init(contentsOfFile: path!)\n            userGuiderScrollView.addSubview(imageView)\n            if i == kBBUserGuiderImgCount - 1 {\n                imageView.isUserInteractionEnabled = true\n                userGuiderImgView = imageView\n                imageView.addSubview(startBtn)\n            }\n            \n            userGuiderScrollView.contentSize = CGSize(width: CGFloat(kBBUserGuiderImgCount+1)*(view.frame.size.width), height: view.frame.size.height)\n            userGuiderScrollView.isPagingEnabled = true\n            userGuiderScrollView.showsVerticalScrollIndicator = false\n            userGuiderScrollView.showsHorizontalScrollIndicator = false\n            userGuiderScrollView.bounces = false\n            userGuiderScrollView.delegate = self\n        }\n        return userGuiderScrollView\n    }()\n    \n    lazy var startBtn: UIButton = {\n        let startBtn = UIButton()\n        startBtn.backgroundColor = UIColor.clear\n        startBtn.frame = view.frame\n        startBtn.addTarget(self, action: #selector(startClick), for: .touchUpInside)\n        return startBtn\n    }()\n    var userGuiderImgView: UIImageView?\n    \n    \n    \n    override func viewDidLoad() {\n        super.viewDidLoad()\n\n        view.addSubview(userGuiderScrollView)\n        \n    }\n    \n    @objc func startClick() {\n        let appDelegate = UIApplication.shared.delegate as! AppDelegate\n        appDelegate.setupRootViewController(rootViewController: BBTabBarController())\n    }\n}\n\nextension BBUserGuiderController : UIScrollViewDelegate {\n\n    func scrollViewDidScroll(_ scrollView: UIScrollView) {\n        if scrollView.contentOffset.x > CGFloat(kBBUserGuiderImgCount - 1)*(view.frame.size.width) {\n            startClick()\n        }\n    }\n}\n"
  },
  {
    "path": "BBGestureBack_Full_swift/Classes/Resource/BBUserGuider.bundle/Root.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>StringsTable</key>\n\t<string>Root</string>\n\t<key>PreferenceSpecifiers</key>\n\t<array>\n\t\t<dict>\n\t\t\t<key>Type</key>\n\t\t\t<string>PSGroupSpecifier</string>\n\t\t\t<key>Title</key>\n\t\t\t<string>Group</string>\n\t\t</dict>\n\t\t<dict>\n\t\t\t<key>Type</key>\n\t\t\t<string>PSTextFieldSpecifier</string>\n\t\t\t<key>Title</key>\n\t\t\t<string>Name</string>\n\t\t\t<key>Key</key>\n\t\t\t<string>name_preference</string>\n\t\t\t<key>DefaultValue</key>\n\t\t\t<string></string>\n\t\t\t<key>IsSecure</key>\n\t\t\t<false/>\n\t\t\t<key>KeyboardType</key>\n\t\t\t<string>Alphabet</string>\n\t\t\t<key>AutocapitalizationType</key>\n\t\t\t<string>None</string>\n\t\t\t<key>AutocorrectionType</key>\n\t\t\t<string>No</string>\n\t\t</dict>\n\t\t<dict>\n\t\t\t<key>Type</key>\n\t\t\t<string>PSToggleSwitchSpecifier</string>\n\t\t\t<key>Title</key>\n\t\t\t<string>Enabled</string>\n\t\t\t<key>Key</key>\n\t\t\t<string>enabled_preference</string>\n\t\t\t<key>DefaultValue</key>\n\t\t\t<true/>\n\t\t</dict>\n\t\t<dict>\n\t\t\t<key>Type</key>\n\t\t\t<string>PSSliderSpecifier</string>\n\t\t\t<key>Key</key>\n\t\t\t<string>slider_preference</string>\n\t\t\t<key>DefaultValue</key>\n\t\t\t<real>0.5</real>\n\t\t\t<key>MinimumValue</key>\n\t\t\t<integer>0</integer>\n\t\t\t<key>MaximumValue</key>\n\t\t\t<integer>1</integer>\n\t\t\t<key>MinimumValueImage</key>\n\t\t\t<string></string>\n\t\t\t<key>MaximumValueImage</key>\n\t\t\t<string></string>\n\t\t</dict>\n\t</array>\n\t<key>ApplicationGroupContainerIdentifier</key>\n\t<string></string>\n</dict>\n</plist>\n"
  },
  {
    "path": "BBGestureBack_Full_swift/Classes/User/Index/UserViewController.swift",
    "content": "//  希望您的举手之劳，能为我点颗赞，谢谢~\n//  代码地址: https://github.com/Bonway/BBGestureBack\n//  BBGestureBack\n//  Created by Bonway on 2016/3/17.\n//  Copyright © 2016年 Bonway. All rights reserved.\n//\n\nimport UIKit\n\nclass UserViewController: BBGestureBaseController {\n\n    override func viewDidLoad() {\n        super.viewDidLoad()\n\n        \n    }\n\n    override func didReceiveMemoryWarning() {\n        super.didReceiveMemoryWarning()\n        \n    }\n    \n\n\n}\n"
  },
  {
    "path": "BBGestureBack_Full_swift/Info.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>UIUserInterfaceStyle</key>\n\t<string>Light</string>\n\t<key>CFBundleDevelopmentRegion</key>\n\t<string>$(DEVELOPMENT_LANGUAGE)</string>\n\t<key>CFBundleExecutable</key>\n\t<string>$(EXECUTABLE_NAME)</string>\n\t<key>CFBundleIdentifier</key>\n\t<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>\n\t<key>CFBundleInfoDictionaryVersion</key>\n\t<string>6.0</string>\n\t<key>CFBundleName</key>\n\t<string>$(PRODUCT_NAME)</string>\n\t<key>CFBundlePackageType</key>\n\t<string>APPL</string>\n\t<key>CFBundleShortVersionString</key>\n\t<string>1.0</string>\n\t<key>CFBundleVersion</key>\n\t<string>1</string>\n\t<key>LSRequiresIPhoneOS</key>\n\t<true/>\n\t<key>UILaunchStoryboardName</key>\n\t<string>LaunchScreen</string>\n\t<key>UIRequiredDeviceCapabilities</key>\n\t<array>\n\t\t<string>armv7</string>\n\t</array>\n\t<key>UISupportedInterfaceOrientations</key>\n\t<array>\n\t\t<string>UIInterfaceOrientationPortrait</string>\n\t</array>\n\t<key>UISupportedInterfaceOrientations~ipad</key>\n\t<array>\n\t\t<string>UIInterfaceOrientationPortrait</string>\n\t\t<string>UIInterfaceOrientationPortraitUpsideDown</string>\n\t\t<string>UIInterfaceOrientationLandscapeLeft</string>\n\t\t<string>UIInterfaceOrientationLandscapeRight</string>\n\t</array>\n</dict>\n</plist>\n"
  },
  {
    "path": "BBGestureBack_SysFull_oc/Assets.xcassets/AppIcon.appiconset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"size\" : \"20x20\",\n      \"idiom\" : \"iphone\",\n      \"filename\" : \"20@2x-1.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"size\" : \"20x20\",\n      \"idiom\" : \"iphone\",\n      \"filename\" : \"20@3x.png\",\n      \"scale\" : \"3x\"\n    },\n    {\n      \"size\" : \"29x29\",\n      \"idiom\" : \"iphone\",\n      \"filename\" : \"29@2x-1.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"size\" : \"29x29\",\n      \"idiom\" : \"iphone\",\n      \"filename\" : \"29@3x.png\",\n      \"scale\" : \"3x\"\n    },\n    {\n      \"size\" : \"40x40\",\n      \"idiom\" : \"iphone\",\n      \"filename\" : \"40@2x-1.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"size\" : \"40x40\",\n      \"idiom\" : \"iphone\",\n      \"filename\" : \"40@3x.png\",\n      \"scale\" : \"3x\"\n    },\n    {\n      \"size\" : \"60x60\",\n      \"idiom\" : \"iphone\",\n      \"filename\" : \"60@2x.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"size\" : \"60x60\",\n      \"idiom\" : \"iphone\",\n      \"filename\" : \"60@3x.png\",\n      \"scale\" : \"3x\"\n    },\n    {\n      \"size\" : \"20x20\",\n      \"idiom\" : \"ipad\",\n      \"filename\" : \"20@1x.png\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"size\" : \"20x20\",\n      \"idiom\" : \"ipad\",\n      \"filename\" : \"20@2x.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"size\" : \"29x29\",\n      \"idiom\" : \"ipad\",\n      \"filename\" : \"29@1x.png\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"size\" : \"29x29\",\n      \"idiom\" : \"ipad\",\n      \"filename\" : \"29@2x.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"size\" : \"40x40\",\n      \"idiom\" : \"ipad\",\n      \"filename\" : \"40@1x.png\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"size\" : \"40x40\",\n      \"idiom\" : \"ipad\",\n      \"filename\" : \"40@2x.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"size\" : \"76x76\",\n      \"idiom\" : \"ipad\",\n      \"filename\" : \"76@1x.png\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"size\" : \"76x76\",\n      \"idiom\" : \"ipad\",\n      \"filename\" : \"76@2x.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"size\" : \"83.5x83.5\",\n      \"idiom\" : \"ipad\",\n      \"filename\" : \"83.5@2x.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"size\" : \"1024x1024\",\n      \"idiom\" : \"ios-marketing\",\n      \"filename\" : \"1024@1x.png\",\n      \"scale\" : \"1x\"\n    }\n  ],\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "BBGestureBack_SysFull_oc/Assets.xcassets/Contents.json",
    "content": "{\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "BBGestureBack_SysFull_oc/Assets.xcassets/TabBar/Contents.json",
    "content": "{\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "BBGestureBack_SysFull_oc/Assets.xcassets/TabBar/TabBarHomeNormal.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"TabBarHomeNormal@2x.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"TabBarHomeNormal@3x.png\",\n      \"scale\" : \"3x\"\n    }\n  ],\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  },\n  \"properties\" : {\n    \"template-rendering-intent\" : \"original\"\n  }\n}"
  },
  {
    "path": "BBGestureBack_SysFull_oc/Assets.xcassets/TabBar/TabBarHomeSelected.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"TabBarHomeSelected@2x.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"TabBarHomeSelected@3x.png\",\n      \"scale\" : \"3x\"\n    }\n  ],\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "BBGestureBack_SysFull_oc/Assets.xcassets/TabBar/TabBarUserNormal.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"TabBarUserNormal@2x.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"TabBarUserNormal@3x.png\",\n      \"scale\" : \"3x\"\n    }\n  ],\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  },\n  \"properties\" : {\n    \"template-rendering-intent\" : \"original\"\n  }\n}"
  },
  {
    "path": "BBGestureBack_SysFull_oc/Assets.xcassets/TabBar/TabBarUserSelected.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"TabBarUserSelected@2x.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"TabBarUserSelected@3x.png\",\n      \"scale\" : \"3x\"\n    }\n  ],\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "BBGestureBack_SysFull_oc/Assets.xcassets/logo.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"logo@2x.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"logo@3x.png\",\n      \"scale\" : \"3x\"\n    }\n  ],\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "BBGestureBack_SysFull_oc/Base.lproj/LaunchScreen.storyboard",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB\" version=\"3.0\" toolsVersion=\"14109\" targetRuntime=\"iOS.CocoaTouch\" propertyAccessControl=\"none\" useAutolayout=\"YES\" launchScreen=\"YES\" colorMatched=\"YES\" initialViewController=\"01J-lp-oVM\">\n    <device id=\"retina4_7\" orientation=\"portrait\">\n        <adaptation id=\"fullscreen\"/>\n    </device>\n    <dependencies>\n        <deployment identifier=\"iOS\"/>\n        <plugIn identifier=\"com.apple.InterfaceBuilder.IBCocoaTouchPlugin\" version=\"14088\"/>\n        <capability name=\"Constraints to layout margins\" minToolsVersion=\"6.0\"/>\n        <capability name=\"documents saved in the Xcode 8 format\" minToolsVersion=\"8.0\"/>\n    </dependencies>\n    <scenes>\n        <!--View Controller-->\n        <scene sceneID=\"EHf-IW-A2E\">\n            <objects>\n                <viewController id=\"01J-lp-oVM\" sceneMemberID=\"viewController\">\n                    <layoutGuides>\n                        <viewControllerLayoutGuide type=\"top\" id=\"wJ6-tn-oZ6\"/>\n                        <viewControllerLayoutGuide type=\"bottom\" id=\"brw-ND-DR7\"/>\n                    </layoutGuides>\n                    <view key=\"view\" contentMode=\"scaleToFill\" id=\"Ze5-6b-2t3\">\n                        <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"375\" height=\"667\"/>\n                        <autoresizingMask key=\"autoresizingMask\" widthSizable=\"YES\" heightSizable=\"YES\"/>\n                        <subviews>\n                            <imageView userInteractionEnabled=\"NO\" contentMode=\"scaleToFill\" horizontalHuggingPriority=\"251\" verticalHuggingPriority=\"251\" image=\"logo\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"7fk-3g-lDI\">\n                                <rect key=\"frame\" x=\"67\" y=\"213.5\" width=\"240\" height=\"240\"/>\n                                <constraints>\n                                    <constraint firstAttribute=\"height\" constant=\"240\" id=\"lbg-7s-TM8\"/>\n                                    <constraint firstAttribute=\"width\" constant=\"240\" id=\"opV-cn-Xl0\"/>\n                                </constraints>\n                            </imageView>\n                            <label opaque=\"NO\" userInteractionEnabled=\"NO\" contentMode=\"left\" horizontalHuggingPriority=\"251\" verticalHuggingPriority=\"251\" text=\"您可以为我点个赞吗？\" textAlignment=\"center\" lineBreakMode=\"tailTruncation\" baselineAdjustment=\"alignBaselines\" adjustsFontSizeToFit=\"NO\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"LMs-9Q-pEN\">\n                                <rect key=\"frame\" x=\"16\" y=\"473.5\" width=\"343\" height=\"21\"/>\n                                <constraints>\n                                    <constraint firstAttribute=\"height\" constant=\"21\" id=\"IiF-NU-D1J\"/>\n                                </constraints>\n                                <fontDescription key=\"fontDescription\" type=\"system\" pointSize=\"22\"/>\n                                <nil key=\"highlightedColor\"/>\n                            </label>\n                        </subviews>\n                        <color key=\"backgroundColor\" white=\"1\" alpha=\"1\" colorSpace=\"custom\" customColorSpace=\"genericGamma22GrayColorSpace\"/>\n                        <constraints>\n                            <constraint firstItem=\"LMs-9Q-pEN\" firstAttribute=\"top\" secondItem=\"7fk-3g-lDI\" secondAttribute=\"bottom\" constant=\"20\" id=\"4pq-RP-mNf\"/>\n                            <constraint firstItem=\"LMs-9Q-pEN\" firstAttribute=\"leading\" secondItem=\"Ze5-6b-2t3\" secondAttribute=\"leadingMargin\" id=\"CPs-4w-sCY\"/>\n                            <constraint firstItem=\"7fk-3g-lDI\" firstAttribute=\"centerY\" secondItem=\"Ze5-6b-2t3\" secondAttribute=\"centerY\" id=\"JdY-mR-UbN\"/>\n                            <constraint firstItem=\"7fk-3g-lDI\" firstAttribute=\"centerX\" secondItem=\"Ze5-6b-2t3\" secondAttribute=\"centerX\" id=\"etK-3r-Gum\"/>\n                            <constraint firstAttribute=\"trailingMargin\" secondItem=\"LMs-9Q-pEN\" secondAttribute=\"trailing\" id=\"nVr-AX-uZf\"/>\n                        </constraints>\n                    </view>\n                </viewController>\n                <placeholder placeholderIdentifier=\"IBFirstResponder\" id=\"iYj-Kq-Ea1\" userLabel=\"First Responder\" sceneMemberID=\"firstResponder\"/>\n            </objects>\n            <point key=\"canvasLocation\" x=\"32.5\" y=\"416.5\"/>\n        </scene>\n    </scenes>\n    <resources>\n        <image name=\"logo\" width=\"200\" height=\"200\"/>\n    </resources>\n</document>\n"
  },
  {
    "path": "BBGestureBack_SysFull_oc/Classes/Home/Index/HomeViewController.h",
    "content": "//  希望您的举手之劳，能为我点颗赞，谢谢~\n//  代码地址: https://github.com/Bonway/BBGestureBack\n//  BBGestureBack\n//  Created by Bonway on 2016/3/17.\n//  Copyright © 2016年 Bonway. All rights reserved.\n//\n\n#import <UIKit/UIKit.h>\n\n@interface HomeViewController : UIViewController\n\n@end\n"
  },
  {
    "path": "BBGestureBack_SysFull_oc/Classes/Home/Index/HomeViewController.m",
    "content": "//  希望您的举手之劳，能为我点颗赞，谢谢~\n//  代码地址: https://github.com/Bonway/BBGestureBack\n//  BBGestureBack\n//  Created by Bonway on 2016/3/17.\n//  Copyright © 2016年 Bonway. All rights reserved.\n//\n\n#import \"HomeViewController.h\"\n#import \"ViewController.h\"\n@interface HomeViewController ()\n\n@end\n\n@implementation HomeViewController\n\n- (void)viewDidLoad {\n    [super viewDidLoad];\n    \n    self.view.backgroundColor = [UIColor whiteColor];\n    UIButton *sysBtn = [[UIButton alloc]initWithFrame:CGRectMake(100, 100, 100, 100)];\n    sysBtn.backgroundColor = [UIColor blueColor];\n    [sysBtn setTitle:@\"sysPush\" forState:UIControlStateNormal];\n    [sysBtn addTarget:self action:@selector(sysPushClick) forControlEvents:UIControlEventTouchUpInside];\n    [self.view addSubview:sysBtn];\n}\n\n\n- (void)sysPushClick {\n    [self.navigationController pushViewController:[ViewController new] animated:YES];\n}\n\n\n- (void)didReceiveMemoryWarning {\n    [super didReceiveMemoryWarning];\n    // Dispose of any resources that can be recreated.\n}\n\n\n\n@end\n"
  },
  {
    "path": "BBGestureBack_SysFull_oc/Classes/Home/ViewController.h",
    "content": "//  希望您的举手之劳，能为我点颗赞，谢谢~\n//  代码地址: https://github.com/Bonway/BBGestureBack\n//  BBGestureBack\n//  Created by Bonway on 2016/3/17.\n//  Copyright © 2016年 Bonway. All rights reserved.\n//\n\n#import <UIKit/UIKit.h>\n\n@interface ViewController : UIViewController\n\n\n@end\n\n"
  },
  {
    "path": "BBGestureBack_SysFull_oc/Classes/Home/ViewController.m",
    "content": "//  希望您的举手之劳，能为我点颗赞，谢谢~\n//  代码地址: https://github.com/Bonway/BBGestureBack\n//  BBGestureBack\n//  Created by Bonway on 2016/3/17.\n//  Copyright © 2016年 Bonway. All rights reserved.\n//\n\n#import \"ViewController.h\"\n\n@interface ViewController ()\n\n@end\n\n@implementation ViewController\n\n- (void)viewDidLoad {\n    [super viewDidLoad];\n    \n    //iOS12.1 UINavigationController + UITabBarController（ UITabBar 磨砂），在 系统的 popViewControllerAnimated 会遇到tabbar布局错乱的问题，所以需添加以下方法。\n    //当然你也可以自己选择添加到底层的navigationController中，进行处理。\n    [[UITabBar appearance]setTranslucent:NO];\n    //---------------------------------------\n    \n    self.view.backgroundColor = [UIColor whiteColor];\n}\n\n\n- (void)didReceiveMemoryWarning {\n    [super didReceiveMemoryWarning];\n    \n}\n\n\n@end\n"
  },
  {
    "path": "BBGestureBack_SysFull_oc/Classes/Main/AppDelegate.h",
    "content": "//  希望您的举手之劳，能为我点颗赞，谢谢~\n//  代码地址: https://github.com/Bonway/BBGestureBack\n//  BBGestureBack\n//  Created by Bonway on 2016/3/17.\n//  Copyright © 2016年 Bonway. All rights reserved.\n//\n\n#import <UIKit/UIKit.h>\n\n@interface AppDelegate : UIResponder <UIApplicationDelegate>\n\n@property (strong, nonatomic) UIWindow *window;\n\n\n@end\n\n"
  },
  {
    "path": "BBGestureBack_SysFull_oc/Classes/Main/AppDelegate.m",
    "content": "//  希望您的举手之劳，能为我点颗赞，谢谢~\n//  代码地址: https://github.com/Bonway/BBGestureBack\n//  BBGestureBack\n//  Created by Bonway on 2016/3/17.\n//  Copyright © 2016年 Bonway. All rights reserved.\n//\n\n#import \"AppDelegate.h\"\n#import \"BBTabBarController.h\"\n#import \"BBNavigationController.h\"\n\n@interface AppDelegate ()\n\n@end\n\n@implementation AppDelegate\n\n\n- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {\n    \n    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];\n    self.window.backgroundColor = [UIColor whiteColor];\n    \n    self.window.rootViewController = [[BBTabBarController alloc] init];;\n    \n    [self.window makeKeyAndVisible];\n    \n    return YES;\n}\n\n\n- (void)applicationWillResignActive:(UIApplication *)application {\n    // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.\n    // Use this method to pause ongoing tasks, disable timers, and invalidate graphics rendering callbacks. Games should use this method to pause the game.\n}\n\n\n- (void)applicationDidEnterBackground:(UIApplication *)application {\n    // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.\n    // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.\n}\n\n\n- (void)applicationWillEnterForeground:(UIApplication *)application {\n    // Called as part of the transition from the background to the active state; here you can undo many of the changes made on entering the background.\n}\n\n\n- (void)applicationDidBecomeActive:(UIApplication *)application {\n    // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.\n}\n\n\n- (void)applicationWillTerminate:(UIApplication *)application {\n    // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.\n}\n\n\n@end\n"
  },
  {
    "path": "BBGestureBack_SysFull_oc/Classes/Main/BBNavigation/BBNavigationController.h",
    "content": "//  希望您的举手之劳，能为我点颗赞，谢谢~\n//  代码地址: https://github.com/Bonway/BBGestureBack\n//  BBGestureBack\n//  Created by Bonway on 2016/3/17.\n//  Copyright © 2016年 Bonway. All rights reserved.\n//\n\n#import <UIKit/UIKit.h>\n\n@interface BBNavigationController : UINavigationController\n\n- (void)addFullScreenPopBlackListItem:(UIViewController *)viewController;\n- (void)removeFromFullScreenPopBlackList:(UIViewController *)viewController;\n\n@end\n"
  },
  {
    "path": "BBGestureBack_SysFull_oc/Classes/Main/BBNavigation/BBNavigationController.m",
    "content": "//  希望您的举手之劳，能为我点颗赞，谢谢~\n//  代码地址: https://github.com/Bonway/BBGestureBack\n//  BBGestureBack\n//  Created by Bonway on 2016/3/17.\n//  Copyright © 2016年 Bonway. All rights reserved.\n//\n\n#import \"BBNavigationController.h\"\n\n@interface BBNavigationController () <UIGestureRecognizerDelegate>\n\n@property(nonatomic, strong) NSMutableArray *blackList;\n\n@end\n\n@implementation BBNavigationController\n\n#pragma mark - Lazy load\n- (NSMutableArray *)blackList {\n    if (!_blackList) {\n        _blackList = [NSMutableArray array];\n    }\n    return _blackList;\n}\n\n#pragma mark - Public\n- (void)addFullScreenPopBlackListItem:(UIViewController *)viewController {\n    if (!viewController) {\n        return ;\n    }\n    [self.blackList addObject:viewController];\n}\n\n- (void)removeFromFullScreenPopBlackList:(UIViewController *)viewController {\n    for (UIViewController *vc in self.blackList) {\n        if (vc == viewController) {\n            [self.blackList removeObject:vc];\n        }\n    }\n}\n\n#pragma mark - Life cycle\n- (void)viewDidLoad {\n    [super viewDidLoad];\n\n    id target = self.interactivePopGestureRecognizer.delegate;\n\n    SEL handler = NSSelectorFromString(@\"handleNavigationTransition:\");\n\n    UIView *targetView = self.interactivePopGestureRecognizer.view;\n    \n\n    UIPanGestureRecognizer * fullScreenGes = [[UIPanGestureRecognizer alloc]initWithTarget:target action:handler];\n    fullScreenGes.delegate = self;\n    [targetView addGestureRecognizer:fullScreenGes];\n\n    [self.interactivePopGestureRecognizer setEnabled:NO];\n}\n\n#pragma mark - UIGestureRecognizerDelegate\n\n- (BOOL)gestureRecognizerShouldBegin:(UIPanGestureRecognizer *)gestureRecognizer {\n   \n    for (UIViewController *viewController in self.blackList) {\n        if ([self topViewController] == viewController) {\n            return NO;\n        }\n    }\n    \n    if ([[self valueForKey:@\"_isTransitioning\"] boolValue]) {\n        return NO;\n    }\n    \n    \n    CGPoint translation = [gestureRecognizer translationInView:gestureRecognizer.view];\n    if (translation.x <= 0) {\n        return NO;\n    }\n    \n    return self.childViewControllers.count == 1 ? NO : YES;\n}\n\n- (void)didReceiveMemoryWarning {\n    [super didReceiveMemoryWarning];\n    // Dispose of any resources that can be recreated.\n}\n\n\n@end\n"
  },
  {
    "path": "BBGestureBack_SysFull_oc/Classes/Main/BBTabBar/BBTabBarController.h",
    "content": "//  希望您的举手之劳，能为我点颗赞，谢谢~\n//  代码地址: https://github.com/Bonway/BBGestureBack\n//  BBGestureBack\n//  Created by Bonway on 2016/3/17.\n//  Copyright © 2016年 Bonway. All rights reserved.\n//\n\n\n#import <UIKit/UIKit.h>\n\n@interface BBTabBarController : UITabBarController\n \n@end\n"
  },
  {
    "path": "BBGestureBack_SysFull_oc/Classes/Main/BBTabBar/BBTabBarController.m",
    "content": "//  希望您的举手之劳，能为我点颗赞，谢谢~\n//  代码地址: https://github.com/Bonway/BBGestureBack\n//  BBGestureBack\n//  Created by Bonway on 2016/3/17.\n//  Copyright © 2016年 Bonway. All rights reserved.\n\n\n\n#import \"BBTabBarController.h\"\n\n#import \"BBNavigationController.h\"\n\n#import \"HomeViewController.h\"\n#import \"UserViewController.h\"\n\n@interface BBTabBarController ()\n\n@end\n\n@implementation BBTabBarController\n\n- (void)viewDidLoad {\n    [super viewDidLoad];\n    [self setUpAllChildViewController];\n}\n- (void)setUpAllChildViewController {\n    HomeViewController *home = [[HomeViewController alloc] init];\n    [self setUpOneChildViewController:home image:[UIImage imageNamed:@\"TabBarHomeNormal\"] selectedImage:[UIImage imageNamed:@\"TabBarHomeSelected\"] title:@\"Home\"];\n    UserViewController *user = [[UserViewController alloc] init];\n    [self setUpOneChildViewController:user image:[UIImage imageNamed:@\"TabBarUserNormal\"] selectedImage:[UIImage imageNamed:@\"TabBarUserSelected\"] title:@\"User\"];\n}\n- (void)setUpOneChildViewController:(UIViewController *)vc image:(UIImage *)image selectedImage:(UIImage *)selectedImage title:(NSString *)title {\n    vc.title = title;\n    vc.tabBarItem.image = image;\n    vc.tabBarItem.selectedImage = selectedImage;\n    BBNavigationController *nav = [[BBNavigationController alloc] initWithRootViewController:vc];\n    [self addChildViewController:nav];\n}\n- (void)didReceiveMemoryWarning {\n    [super didReceiveMemoryWarning];\n}\n\n@end\n"
  },
  {
    "path": "BBGestureBack_SysFull_oc/Classes/User/Index/UserViewController.h",
    "content": "//  希望您的举手之劳，能为我点颗赞，谢谢~\n//  代码地址: https://github.com/Bonway/BBGestureBack\n//  BBGestureBack\n//  Created by Bonway on 2016/3/17.\n//  Copyright © 2016年 Bonway. All rights reserved.\n//\n\n#import <UIKit/UIKit.h>\n\n@interface UserViewController : UIViewController\n\n@end\n"
  },
  {
    "path": "BBGestureBack_SysFull_oc/Classes/User/Index/UserViewController.m",
    "content": "//  希望您的举手之劳，能为我点颗赞，谢谢~\n//  代码地址: https://github.com/Bonway/BBGestureBack\n//  BBGestureBack\n//  Created by Bonway on 2016/3/17.\n//  Copyright © 2016年 Bonway. All rights reserved.\n//\n\n#import \"UserViewController.h\"\n\n@interface UserViewController ()\n\n@end\n\n@implementation UserViewController\n\n- (void)viewDidLoad {\n    [super viewDidLoad];\n    // Do any additional setup after loading the view.\n}\n\n- (void)didReceiveMemoryWarning {\n    [super didReceiveMemoryWarning];\n    // Dispose of any resources that can be recreated.\n}\n\n/*\n#pragma mark - Navigation\n\n// In a storyboard-based application, you will often want to do a little preparation before navigation\n- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {\n    // Get the new view controller using [segue destinationViewController].\n    // Pass the selected object to the new view controller.\n}\n*/\n\n@end\n"
  },
  {
    "path": "BBGestureBack_SysFull_oc/Info.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>UIUserInterfaceStyle</key>\n\t<string>Light</string>\n\t<key>CFBundleDevelopmentRegion</key>\n\t<string>$(DEVELOPMENT_LANGUAGE)</string>\n\t<key>CFBundleExecutable</key>\n\t<string>$(EXECUTABLE_NAME)</string>\n\t<key>CFBundleIdentifier</key>\n\t<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>\n\t<key>CFBundleInfoDictionaryVersion</key>\n\t<string>6.0</string>\n\t<key>CFBundleName</key>\n\t<string>$(PRODUCT_NAME)</string>\n\t<key>CFBundlePackageType</key>\n\t<string>APPL</string>\n\t<key>CFBundleShortVersionString</key>\n\t<string>1.0</string>\n\t<key>CFBundleVersion</key>\n\t<string>1</string>\n\t<key>LSRequiresIPhoneOS</key>\n\t<true/>\n\t<key>UILaunchStoryboardName</key>\n\t<string>LaunchScreen</string>\n\t<key>UIRequiredDeviceCapabilities</key>\n\t<array>\n\t\t<string>armv7</string>\n\t</array>\n\t<key>UISupportedInterfaceOrientations</key>\n\t<array>\n\t\t<string>UIInterfaceOrientationPortrait</string>\n\t</array>\n\t<key>UISupportedInterfaceOrientations~ipad</key>\n\t<array>\n\t\t<string>UIInterfaceOrientationPortrait</string>\n\t\t<string>UIInterfaceOrientationPortraitUpsideDown</string>\n\t\t<string>UIInterfaceOrientationLandscapeLeft</string>\n\t\t<string>UIInterfaceOrientationLandscapeRight</string>\n\t</array>\n</dict>\n</plist>\n"
  },
  {
    "path": "BBGestureBack_SysFull_oc/main.m",
    "content": "//\n//  main.m\n//  BBGestureBack_SysFull_oc\n//\n//  Created by Bonway on 2018/5/23.\n//  Copyright © 2018年 Bonway. All rights reserved.\n//\n\n#import <UIKit/UIKit.h>\n#import \"AppDelegate.h\"\n\nint main(int argc, char * argv[]) {\n    @autoreleasepool {\n        return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));\n    }\n}\n"
  },
  {
    "path": "BBGestureBack_SysFull_swift/Assets.xcassets/AppIcon.appiconset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"size\" : \"20x20\",\n      \"idiom\" : \"iphone\",\n      \"filename\" : \"20@2x-1.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"size\" : \"20x20\",\n      \"idiom\" : \"iphone\",\n      \"filename\" : \"20@3x.png\",\n      \"scale\" : \"3x\"\n    },\n    {\n      \"size\" : \"29x29\",\n      \"idiom\" : \"iphone\",\n      \"filename\" : \"29@2x-1.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"size\" : \"29x29\",\n      \"idiom\" : \"iphone\",\n      \"filename\" : \"29@3x.png\",\n      \"scale\" : \"3x\"\n    },\n    {\n      \"size\" : \"40x40\",\n      \"idiom\" : \"iphone\",\n      \"filename\" : \"40@2x-1.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"size\" : \"40x40\",\n      \"idiom\" : \"iphone\",\n      \"filename\" : \"40@3x.png\",\n      \"scale\" : \"3x\"\n    },\n    {\n      \"size\" : \"60x60\",\n      \"idiom\" : \"iphone\",\n      \"filename\" : \"60@2x.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"size\" : \"60x60\",\n      \"idiom\" : \"iphone\",\n      \"filename\" : \"60@3x.png\",\n      \"scale\" : \"3x\"\n    },\n    {\n      \"size\" : \"20x20\",\n      \"idiom\" : \"ipad\",\n      \"filename\" : \"20@1x.png\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"size\" : \"20x20\",\n      \"idiom\" : \"ipad\",\n      \"filename\" : \"20@2x.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"size\" : \"29x29\",\n      \"idiom\" : \"ipad\",\n      \"filename\" : \"29@1x.png\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"size\" : \"29x29\",\n      \"idiom\" : \"ipad\",\n      \"filename\" : \"29@2x.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"size\" : \"40x40\",\n      \"idiom\" : \"ipad\",\n      \"filename\" : \"40@1x.png\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"size\" : \"40x40\",\n      \"idiom\" : \"ipad\",\n      \"filename\" : \"40@2x.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"size\" : \"76x76\",\n      \"idiom\" : \"ipad\",\n      \"filename\" : \"76@1x.png\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"size\" : \"76x76\",\n      \"idiom\" : \"ipad\",\n      \"filename\" : \"76@2x.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"size\" : \"83.5x83.5\",\n      \"idiom\" : \"ipad\",\n      \"filename\" : \"83.5@2x.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"size\" : \"1024x1024\",\n      \"idiom\" : \"ios-marketing\",\n      \"filename\" : \"1024@1x.png\",\n      \"scale\" : \"1x\"\n    }\n  ],\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "BBGestureBack_SysFull_swift/Assets.xcassets/Contents.json",
    "content": "{\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "BBGestureBack_SysFull_swift/Assets.xcassets/TabBar/Contents.json",
    "content": "{\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "BBGestureBack_SysFull_swift/Assets.xcassets/TabBar/TabBarHomeNormal.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"TabBarHomeNormal@2x.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"TabBarHomeNormal@3x.png\",\n      \"scale\" : \"3x\"\n    }\n  ],\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "BBGestureBack_SysFull_swift/Assets.xcassets/TabBar/TabBarHomeSelected.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"TabBarHomeSelected@2x.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"TabBarHomeSelected@3x.png\",\n      \"scale\" : \"3x\"\n    }\n  ],\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "BBGestureBack_SysFull_swift/Assets.xcassets/TabBar/TabBarUserNormal.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"TabBarUserNormal@2x.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"TabBarUserNormal@3x.png\",\n      \"scale\" : \"3x\"\n    }\n  ],\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "BBGestureBack_SysFull_swift/Assets.xcassets/TabBar/TabBarUserSelected.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"TabBarUserSelected@2x.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"TabBarUserSelected@3x.png\",\n      \"scale\" : \"3x\"\n    }\n  ],\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "BBGestureBack_SysFull_swift/Assets.xcassets/logo.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"logo@2x.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"logo@3x.png\",\n      \"scale\" : \"3x\"\n    }\n  ],\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "BBGestureBack_SysFull_swift/Base.lproj/LaunchScreen.storyboard",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB\" version=\"3.0\" toolsVersion=\"14109\" targetRuntime=\"iOS.CocoaTouch\" propertyAccessControl=\"none\" useAutolayout=\"YES\" launchScreen=\"YES\" colorMatched=\"YES\" initialViewController=\"01J-lp-oVM\">\n    <device id=\"retina4_7\" orientation=\"portrait\">\n        <adaptation id=\"fullscreen\"/>\n    </device>\n    <dependencies>\n        <deployment identifier=\"iOS\"/>\n        <plugIn identifier=\"com.apple.InterfaceBuilder.IBCocoaTouchPlugin\" version=\"14088\"/>\n        <capability name=\"Constraints to layout margins\" minToolsVersion=\"6.0\"/>\n        <capability name=\"documents saved in the Xcode 8 format\" minToolsVersion=\"8.0\"/>\n    </dependencies>\n    <scenes>\n        <!--View Controller-->\n        <scene sceneID=\"EHf-IW-A2E\">\n            <objects>\n                <viewController id=\"01J-lp-oVM\" sceneMemberID=\"viewController\">\n                    <layoutGuides>\n                        <viewControllerLayoutGuide type=\"top\" id=\"wJ6-tn-oZ6\"/>\n                        <viewControllerLayoutGuide type=\"bottom\" id=\"brw-ND-DR7\"/>\n                    </layoutGuides>\n                    <view key=\"view\" contentMode=\"scaleToFill\" id=\"Ze5-6b-2t3\">\n                        <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"375\" height=\"667\"/>\n                        <autoresizingMask key=\"autoresizingMask\" widthSizable=\"YES\" heightSizable=\"YES\"/>\n                        <subviews>\n                            <imageView userInteractionEnabled=\"NO\" contentMode=\"scaleToFill\" horizontalHuggingPriority=\"251\" verticalHuggingPriority=\"251\" image=\"logo\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"7fk-3g-lDI\">\n                                <rect key=\"frame\" x=\"67\" y=\"213.5\" width=\"240\" height=\"240\"/>\n                                <constraints>\n                                    <constraint firstAttribute=\"height\" constant=\"240\" id=\"lbg-7s-TM8\"/>\n                                    <constraint firstAttribute=\"width\" constant=\"240\" id=\"opV-cn-Xl0\"/>\n                                </constraints>\n                            </imageView>\n                            <label opaque=\"NO\" userInteractionEnabled=\"NO\" contentMode=\"left\" horizontalHuggingPriority=\"251\" verticalHuggingPriority=\"251\" text=\"您可以为我点个赞吗？\" textAlignment=\"center\" lineBreakMode=\"tailTruncation\" baselineAdjustment=\"alignBaselines\" adjustsFontSizeToFit=\"NO\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"LMs-9Q-pEN\">\n                                <rect key=\"frame\" x=\"16\" y=\"473.5\" width=\"343\" height=\"21\"/>\n                                <constraints>\n                                    <constraint firstAttribute=\"height\" constant=\"21\" id=\"IiF-NU-D1J\"/>\n                                </constraints>\n                                <fontDescription key=\"fontDescription\" type=\"system\" pointSize=\"22\"/>\n                                <nil key=\"highlightedColor\"/>\n                            </label>\n                        </subviews>\n                        <color key=\"backgroundColor\" white=\"1\" alpha=\"1\" colorSpace=\"custom\" customColorSpace=\"genericGamma22GrayColorSpace\"/>\n                        <constraints>\n                            <constraint firstItem=\"LMs-9Q-pEN\" firstAttribute=\"top\" secondItem=\"7fk-3g-lDI\" secondAttribute=\"bottom\" constant=\"20\" id=\"4pq-RP-mNf\"/>\n                            <constraint firstItem=\"LMs-9Q-pEN\" firstAttribute=\"leading\" secondItem=\"Ze5-6b-2t3\" secondAttribute=\"leadingMargin\" id=\"CPs-4w-sCY\"/>\n                            <constraint firstItem=\"7fk-3g-lDI\" firstAttribute=\"centerY\" secondItem=\"Ze5-6b-2t3\" secondAttribute=\"centerY\" id=\"JdY-mR-UbN\"/>\n                            <constraint firstItem=\"7fk-3g-lDI\" firstAttribute=\"centerX\" secondItem=\"Ze5-6b-2t3\" secondAttribute=\"centerX\" id=\"etK-3r-Gum\"/>\n                            <constraint firstAttribute=\"trailingMargin\" secondItem=\"LMs-9Q-pEN\" secondAttribute=\"trailing\" id=\"nVr-AX-uZf\"/>\n                        </constraints>\n                    </view>\n                </viewController>\n                <placeholder placeholderIdentifier=\"IBFirstResponder\" id=\"iYj-Kq-Ea1\" userLabel=\"First Responder\" sceneMemberID=\"firstResponder\"/>\n            </objects>\n            <point key=\"canvasLocation\" x=\"32.5\" y=\"416.5\"/>\n        </scene>\n    </scenes>\n    <resources>\n        <image name=\"logo\" width=\"200\" height=\"200\"/>\n    </resources>\n</document>\n"
  },
  {
    "path": "BBGestureBack_SysFull_swift/Classes/Home/Index/HomeViewController.swift",
    "content": "//\n//  HomeViewController.swift\n//  BBGestureBack_SysFull_swift\n//\n//  Created by Bonway on 2018/5/29.\n//  Copyright © 2018年 Bonway. All rights reserved.\n//\n\nimport UIKit\n\nclass HomeViewController: UIViewController {\n\n    override func viewDidLoad() {\n        super.viewDidLoad()\n\n        //iOS12.1 UINavigationController + UITabBarController（ UITabBar 磨砂），在 系统的 popViewControllerAnimated 会遇到tabbar布局错乱的问题，所以需添加以下方法。\n        //当然你也可以自己选择添加到底层的navigationController中，进行处理。\n        UITabBar.appearance().isTranslucent = false\n        //---------------------------------------\n        \n        view.backgroundColor = UIColor.white\n        let sysBtn = UIButton()\n        sysBtn.backgroundColor = UIColor.blue\n        sysBtn.frame = CGRect(x: 100, y: 100, width: 110, height: 100)\n        sysBtn.setTitle(\"sysPush\", for: UIControlState.normal)\n        sysBtn.addTarget(self, action: #selector(sysPushClick), for: UIControlEvents.touchUpInside)\n        \n        self.view.addSubview(sysBtn)\n    }\n\n    \n    @objc func sysPushClick() {\n        self.navigationController?.pushViewController(ViewController(), animated: true)\n    }\n    \n    \n    override func didReceiveMemoryWarning() {\n        super.didReceiveMemoryWarning()\n        // Dispose of any resources that can be recreated.\n    }\n    \n\n}\n"
  },
  {
    "path": "BBGestureBack_SysFull_swift/Classes/Home/ViewController.swift",
    "content": "//  希望您的举手之劳，能为我点颗赞，谢谢~\n//  I hope you can star for me. Thank you.\n//  代码地址: https://github.com/Bonway/BBGestureBack\n//  BBGestureBack\n//  Created by Bonway on 2016/3/17.\n//  Copyright © 2016年 Bonway. All rights reserved.\n//\n\nimport UIKit\n\nclass ViewController: UIViewController {\n\n    override func viewDidLoad() {\n        super.viewDidLoad()\n        view.backgroundColor = UIColor.white\n    }\n\n    override func didReceiveMemoryWarning() {\n        super.didReceiveMemoryWarning()\n        // Dispose of any resources that can be recreated.\n    }\n\n\n}\n\n"
  },
  {
    "path": "BBGestureBack_SysFull_swift/Classes/Main/AppDelegate.swift",
    "content": "//  希望您的举手之劳，能为我点颗赞，谢谢~\n//  I hope you can star for me. Thank you.\n//  代码地址: https://github.com/Bonway/BBGestureBack\n//  BBGestureBack\n//  Created by Bonway on 2016/3/17.\n//  Copyright © 2016年 Bonway. All rights reserved.\n//\nimport UIKit\n\n@UIApplicationMain\nclass AppDelegate: UIResponder, UIApplicationDelegate {\n\n    var window: UIWindow?\n\n\n    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {\n        \n        window = UIWindow(frame: UIScreen.main.bounds)\n        window?.backgroundColor = UIColor.white\n        window?.rootViewController = BBTabBarController()\n        window?.makeKeyAndVisible()\n        \n        return true\n    }\n\n    func applicationWillResignActive(_ application: UIApplication) {\n        // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.\n        // Use this method to pause ongoing tasks, disable timers, and invalidate graphics rendering callbacks. Games should use this method to pause the game.\n    }\n\n    func applicationDidEnterBackground(_ application: UIApplication) {\n        // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.\n        // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.\n    }\n\n    func applicationWillEnterForeground(_ application: UIApplication) {\n        // Called as part of the transition from the background to the active state; here you can undo many of the changes made on entering the background.\n    }\n\n    func applicationDidBecomeActive(_ application: UIApplication) {\n        // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.\n    }\n\n    func applicationWillTerminate(_ application: UIApplication) {\n        // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.\n    }\n\n\n}\n\n"
  },
  {
    "path": "BBGestureBack_SysFull_swift/Classes/Main/BBNavigation/BBNavigationController.swift",
    "content": "//\n//  BBNavigationController.swift\n//  BBGestureBack_SysFull_swift\n//\n//  Created by Bonway on 2018/5/29.\n//  Copyright © 2018年 Bonway. All rights reserved.\n//\n\nimport UIKit\n\nclass BBNavigationController: UINavigationController, UIGestureRecognizerDelegate{\n\n//    var blackList : NSMutableArray!\n    \n//    private lazy var blackList:NSMutableArray = {\n//        let list = NSMutableArray.init(array: nil)\n//        return list\n//    }()\n//\n//\n//\n//    func addFullScreenPopBlackListItem(viewController: UIViewController){\n//        if viewController as? UIViewController == nil {\n//            return\n//        }\n//        blackList.add(viewController)\n//    }\n//\n//    func removeFromFullScreenPopBlackList(viewController: UIViewController){\n//\n//        for vc in blackList {\n//            if vc == nil {\n//                blackList.remove(viewController)\n//            }\n//        }\n//\n//\n//\n//    }\n    \n    \n    override func viewDidLoad() {\n        super.viewDidLoad()\n\n        // Do any additional setup after loading the view.\n    }\n\n    override func didReceiveMemoryWarning() {\n        super.didReceiveMemoryWarning()\n        // Dispose of any resources that can be recreated.\n    }\n    \n}\n"
  },
  {
    "path": "BBGestureBack_SysFull_swift/Classes/Main/BBTabBar/BBTabBarController.swift",
    "content": "//\n//  BBTabBarController.swift\n//  BBGestureBack_SysFull_swift\n//\n//  Created by Bonway on 2018/5/29.\n//  Copyright © 2018年 Bonway. All rights reserved.\n//\n\nimport UIKit\n\nclass BBTabBarController: UITabBarController {\n\n    override func viewDidLoad() {\n        super.viewDidLoad()\n        setUpAllChildViewController()\n    }\n    \n    func setUpAllChildViewController() {\n        setUpOneChildViewController(vc: HomeViewController(), image: UIImage(named:  \"TabBarHomeNormal\")!, selectedImage: UIImage(named: \"TabBarHomeSelected\")!, title: \"Home\")\n        setUpOneChildViewController(vc: UserViewController(), image: UIImage(named:  \"TabBarUserNormal\")!, selectedImage: UIImage(named: \"TabBarUserSelected\")!, title: \"User\")\n    }\n    \n    func setUpOneChildViewController(vc:UIViewController,image:UIImage,selectedImage:UIImage,title:String) {\n        \n        vc.title = title\n        vc.tabBarItem.image = image\n        vc.tabBarItem.selectedImage = image\n        let navVC = BBNavigationController(rootViewController: vc)\n        addChildViewController(navVC)\n    }\n\n    override func didReceiveMemoryWarning() {\n        super.didReceiveMemoryWarning()\n    }\n    \n\n}\n"
  },
  {
    "path": "BBGestureBack_SysFull_swift/Classes/User/Index/UserViewController.swift",
    "content": "//\n//  UserViewController.swift\n//  BBGestureBack_SysFull_swift\n//\n//  Created by Bonway on 2018/5/29.\n//  Copyright © 2018年 Bonway. All rights reserved.\n//\n\nimport UIKit\n\nclass UserViewController: UIViewController {\n\n    override func viewDidLoad() {\n        super.viewDidLoad()\n\n        // Do any additional setup after loading the view.\n    }\n\n    override func didReceiveMemoryWarning() {\n        super.didReceiveMemoryWarning()\n        // Dispose of any resources that can be recreated.\n    }\n    \n\n\n}\n"
  },
  {
    "path": "BBGestureBack_SysFull_swift/Info.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>UIUserInterfaceStyle</key>\n\t<string>Light</string>\n\t<key>CFBundleDevelopmentRegion</key>\n\t<string>$(DEVELOPMENT_LANGUAGE)</string>\n\t<key>CFBundleExecutable</key>\n\t<string>$(EXECUTABLE_NAME)</string>\n\t<key>CFBundleIdentifier</key>\n\t<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>\n\t<key>CFBundleInfoDictionaryVersion</key>\n\t<string>6.0</string>\n\t<key>CFBundleName</key>\n\t<string>$(PRODUCT_NAME)</string>\n\t<key>CFBundlePackageType</key>\n\t<string>APPL</string>\n\t<key>CFBundleShortVersionString</key>\n\t<string>1.0</string>\n\t<key>CFBundleVersion</key>\n\t<string>1</string>\n\t<key>LSRequiresIPhoneOS</key>\n\t<true/>\n\t<key>UILaunchStoryboardName</key>\n\t<string>LaunchScreen</string>\n\t<key>UIRequiredDeviceCapabilities</key>\n\t<array>\n\t\t<string>armv7</string>\n\t</array>\n\t<key>UISupportedInterfaceOrientations</key>\n\t<array>\n\t\t<string>UIInterfaceOrientationPortrait</string>\n\t</array>\n\t<key>UISupportedInterfaceOrientations~ipad</key>\n\t<array>\n\t\t<string>UIInterfaceOrientationPortrait</string>\n\t\t<string>UIInterfaceOrientationPortraitUpsideDown</string>\n\t\t<string>UIInterfaceOrientationLandscapeLeft</string>\n\t\t<string>UIInterfaceOrientationLandscapeRight</string>\n\t</array>\n</dict>\n</plist>\n"
  },
  {
    "path": "README.md",
    "content": "# BBGestureBack\n\nFull screen return gesture（全屏手势返回 滑动返回 pop 动画效果）\n在此感谢大家提的建议！！！\n\n[如果你在天朝，请点击这里，速度会很快哦~](https://blog.csdn.net/Bonway_Huang/article/details/50505975) \n\n## iOS 侧滑返回 ##\n\n![BBGestureBack](https://upload-images.jianshu.io/upload_images/10991770-a719a5c2c5c01c79.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)\n\nBBGestureBack iOS 全屏手势返回 滑动返回 pop 动画效果\n\n####  这种手势主流App ####\n[我要去下载 点赞 ：BBGestureBack](https://github.com/Bonway/BBGestureBack) \n\n现在市场上的主流app都有用到各种侧滑手势，**大体上分为2种**，\n一种是：类似于淘宝、京东、腾讯、斗鱼的效果，带导航栏的。如图：\n\n![淘宝效果.gif](https://upload-images.jianshu.io/upload_images/10991770-c0c066b9952cd4a2.gif?imageMogr2/auto-orient/strip)\n![京东效果.gif](https://upload-images.jianshu.io/upload_images/10991770-20665acc596753fd.gif?imageMogr2/auto-orient/strip)\n![腾讯效果.gif](https://upload-images.jianshu.io/upload_images/10991770-85ee3a14c08af52f.gif?imageMogr2/auto-orient/strip)\n![斗鱼效果.gif](https://upload-images.jianshu.io/upload_images/10991770-a807f552c60ef11b.gif?imageMogr2/auto-orient/strip)\n\n\n一种是：类似于微信，不带导航栏，如图：\n\n![微信效果.gif](https://upload-images.jianshu.io/upload_images/10991770-85b47cf133bac792.gif?imageMogr2/auto-orient/strip)\n\n\n####  支持OC、Swift：最低适配iOS 7.0 ####\n\nBBGestureBack不仅支持OC还支持Swift，最低适配iOS7.0，iOS主流的全屏手势返回、滑动返回、pop动画效果都有，适配各种iPhone，嵌入简单，只需按照Demo集成，就能完美使用。（集成最简单、功能最全面）\n\n![BBGestureBack Demo.jpg](https://upload-images.jianshu.io/upload_images/10991770-c04ac90bcad25482.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)\n\n####  BBGestureBack手势效果 ####\n\n不仅仅手势返回可以有动画、就连pop也有效果。\n\n![BBGestureBack手势效果](https://upload-images.jianshu.io/upload_images/10991770-d4ed0df184db25ca.gif?imageMogr2/auto-orient/strip)\n\n![BBGestureBack.gif](https://upload-images.jianshu.io/upload_images/10991770-edecbec93d1d7e8b.gif?imageMogr2/auto-orient/strip)\n\n\n####  BBGestureBack如何使用？ ####\n按照Demo集成就可以了，注意：\n\n * 是否使用效果\n \n `@property (nonatomic) Boolean isEnablePanGesture;//default is YES.`\n \n  * 重新设置rootViewController\n  \n ` setupRootViewController:(UIViewController *)rootViewController`\n \n * pop的返回方式\n \n```\n - (void)bb_popViewController;\n - (void)bb_popToViewController:(UIViewController*)viewController;\n - (void)bb_popToRootViewController;\n```\n* 更新增引导图，后期还会完善广告图\n\n\n* 参数 oc\n![oc参数说明及文件目录](https://upload-images.jianshu.io/upload_images/10991770-ab0eea71e46a62df.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)\n\n```\n//The ifrst user guider image (第一次引导图)\nUIKIT_EXTERN NSString *const kBBFirstLaunch;\n// Open iPhone X Style.（是否打开Phone X风格）\nUIKIT_EXTERN const Boolean kBBIsOpenIphoneXStyle;\n// The default is 40， iPhone X Style Corner。（默认为40，iPhone X 圆角弧度）\nUIKIT_EXTERN const CGFloat kBBIphoneXStyleCorner;\n// The default is 3， User guider image count。（默认为3，用户引导图总页数）\nUIKIT_EXTERN const NSInteger kBBUserGuiderImgCount;\n// Screen system to return gesture.（是否屏蔽系统返回手势）\nUIKIT_EXTERN const Boolean kBBIsCanleSystemPan;\n// The distance from the left can be automatically returned.(距离左边多少距离，可以自动返回)\nUIKIT_EXTERN const CGFloat kBBDistanceToLeft;\n// BottomView Scaling.(底层缩放比例)\nUIKIT_EXTERN const CGFloat kBBWindowToScale;\n// BottomView alpha.(底层透明度)\nUIKIT_EXTERN const CGFloat kBBMaskingAlpha;\n// Automatic return speed.(自动返回速度)\nUIKIT_EXTERN const CGFloat kBBGestureSpeed;\n// Range of drag and drop.(拖拽的范围,大于此值才有效果)\nUIKIT_EXTERN const CGFloat kBBDistanceToPan;\n// The default is 0, 0 for full screen return, and also for distance.（默认为0，0为全屏返回，也可指定距离）\nUIKIT_EXTERN const CGFloat kBBDistanceToStart;\n```\n* 参数 swift\n![swift参数说明及文件目录](https://upload-images.jianshu.io/upload_images/10991770-b63eb35b54bc62fd.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)\n```\n//The ifrst user guider image (第一次引导图)\nlet kBBFirstLaunch:String = \"BBFirstLaunch\"\n// Open iPhone X Style.（是否打开Phone X风格）\nlet kBBIsOpenIphoneXStyle:Bool = true\n// The default is 40， iPhone X Style Corner。（默认为40，iPhone X 圆角弧度）\nlet kBBIphoneXStyleCorner:CGFloat! = 40\n// The default is 3， User guider image count。（默认为3，用户引导图总页数）\nlet kBBUserGuiderImgCount:Int = 3\n// Screen system to return gesture.（是否屏蔽系统返回手势）\nlet kBBIsCanleSystemPan:Bool = true\n// The distance from the left can be automatically returned.(距离左边多少距离，可以自动返回)\nlet kBBDistanceToLeft:CGFloat! = 70.0\n// BottomView Scaling.(底层缩放比例)\nlet kBBWindowToScale:CGFloat! = 0.95\n// BottomView alpha.(底层透明度)\nlet kBBMaskingAlpha:CGFloat! = 0.9\n// Automatic return speed.(自动返回速度)\nlet kBBGestureSpeed:TimeInterval! = 0.3\n// Range of drag and drop.(拖拽的范围,大于此值才有效果)\nlet kBBDistanceToPan:CGFloat! = 10\n// The default is 0, 0 for full screen return, and also for distance.（默认为0，0为全屏返回，也可指定距离）\nlet kBBDistanceToStart:CGFloat! = 100\n```\n\n上传图片说明：\n![BBGestureBack参数说明](https://upload-images.jianshu.io/upload_images/10991770-190ae7dbcf35d5e7.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)\n\n####  BBGestureBack 系统全屏效果 ####\n![系统全屏返回.gif](https://upload-images.jianshu.io/upload_images/10991770-40fc8f74b89dff82.gif?imageMogr2/auto-orient/strip)\n\n\n####  BBGestureBack点赞及下载 ####\n[别拦我，我要去点赞下载](https://github.com/Bonway/BBGestureBack)\n"
  }
]