@@ -3,7 +3,7 @@ |
||
| 3 | 3 |
archiveVersion = 1; |
| 4 | 4 |
classes = {
|
| 5 | 5 |
}; |
| 6 |
- objectVersion = 46; |
|
| 6 |
+ objectVersion = 51; |
|
| 7 | 7 |
objects = {
|
| 8 | 8 |
|
| 9 | 9 |
/* Begin PBXBuildFile section */ |
@@ -38,6 +38,7 @@ |
||
| 38 | 38 |
050D719B22531B860076CE06 /* RxSwift.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 050D719A22531B860076CE06 /* RxSwift.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
| 39 | 39 |
050D719D22531BA60076CE06 /* SQLite.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 050D719C22531BA60076CE06 /* SQLite.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
| 40 | 40 |
050D719E22531BBF0076CE06 /* Differentiator.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 05130FBD21CA194B004EF1BE /* Differentiator.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
| 41 |
+ 050D71A322545D550076CE06 /* NavigationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 050D71A222545D550076CE06 /* NavigationController.swift */; };
|
|
| 41 | 42 |
05130F4021C94B33004EF1BE /* PaiaiUIKit.h in Headers */ = {isa = PBXBuildFile; fileRef = 05130F3021C94B32004EF1BE /* PaiaiUIKit.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
| 42 | 43 |
05130F5721C94C12004EF1BE /* AlertAnimator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 05130F4F21C94C12004EF1BE /* AlertAnimator.swift */; };
|
| 43 | 44 |
05130F5921C94C12004EF1BE /* AlertViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 05130F5121C94C12004EF1BE /* AlertViewController.swift */; };
|
@@ -147,10 +148,7 @@ |
||
| 147 | 148 |
0513106721CA290B004EF1BE /* DateExt.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0543274721C68C1900C6388D /* DateExt.swift */; };
|
| 148 | 149 |
0513106921CA34D6004EF1BE /* GroupDetailCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0513106821CA34D6004EF1BE /* GroupDetailCoordinator.swift */; };
|
| 149 | 150 |
0513106B21CA3545004EF1BE /* PhotoDetailCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0513106A21CA3545004EF1BE /* PhotoDetailCoordinator.swift */; };
|
| 150 |
- 0513107D21CA3907004EF1BE /* CancelAlertAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0513106F21CA3907004EF1BE /* CancelAlertAction.swift */; };
|
|
| 151 |
- 0513107F21CA3907004EF1BE /* DestructiveAlertAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0513107121CA3907004EF1BE /* DestructiveAlertAction.swift */; };
|
|
| 152 | 151 |
0513108021CA3907004EF1BE /* ActionSheetView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0513107221CA3907004EF1BE /* ActionSheetView.swift */; };
|
| 153 |
- 0513108121CA3907004EF1BE /* ConfirmAlertAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0513107321CA3907004EF1BE /* ConfirmAlertAction.swift */; };
|
|
| 154 | 152 |
0513109321CA3915004EF1BE /* ColorQR.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0513108A21CA3914004EF1BE /* ColorQR.swift */; };
|
| 155 | 153 |
0513109421CA3915004EF1BE /* QRCodeMaskView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0513108B21CA3914004EF1BE /* QRCodeMaskView.swift */; };
|
| 156 | 154 |
0513109521CA3915004EF1BE /* QRCodeScanDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0513108C21CA3914004EF1BE /* QRCodeScanDelegate.swift */; };
|
@@ -347,6 +345,7 @@ |
||
| 347 | 345 |
050D719822531B780076CE06 /* RxCocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = RxCocoa.framework; path = Carthage/Build/iOS/RxCocoa.framework; sourceTree = "<group>"; };
|
| 348 | 346 |
050D719A22531B860076CE06 /* RxSwift.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = RxSwift.framework; path = Carthage/Build/iOS/RxSwift.framework; sourceTree = "<group>"; };
|
| 349 | 347 |
050D719C22531BA60076CE06 /* SQLite.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SQLite.framework; path = Carthage/Build/iOS/SQLite.framework; sourceTree = "<group>"; };
|
| 348 |
+ 050D71A222545D550076CE06 /* NavigationController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NavigationController.swift; sourceTree = "<group>"; };
|
|
| 350 | 349 |
050E210F21B8CE8A008E1352 /* AppCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppCoordinator.swift; sourceTree = "<group>"; };
|
| 351 | 350 |
050E211121B8F2D4008E1352 /* HomeCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HomeCoordinator.swift; sourceTree = "<group>"; };
|
| 352 | 351 |
050E211321B8F39C008E1352 /* MineCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MineCoordinator.swift; sourceTree = "<group>"; };
|
@@ -389,10 +388,7 @@ |
||
| 389 | 388 |
0513106121CA22B5004EF1BE /* Alamofire.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Alamofire.framework; path = Carthage/Build/iOS/Alamofire.framework; sourceTree = "<group>"; };
|
| 390 | 389 |
0513106821CA34D6004EF1BE /* GroupDetailCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GroupDetailCoordinator.swift; sourceTree = "<group>"; };
|
| 391 | 390 |
0513106A21CA3545004EF1BE /* PhotoDetailCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PhotoDetailCoordinator.swift; sourceTree = "<group>"; };
|
| 392 |
- 0513106F21CA3907004EF1BE /* CancelAlertAction.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CancelAlertAction.swift; sourceTree = "<group>"; };
|
|
| 393 |
- 0513107121CA3907004EF1BE /* DestructiveAlertAction.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DestructiveAlertAction.swift; sourceTree = "<group>"; };
|
|
| 394 | 391 |
0513107221CA3907004EF1BE /* ActionSheetView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ActionSheetView.swift; sourceTree = "<group>"; };
|
| 395 |
- 0513107321CA3907004EF1BE /* ConfirmAlertAction.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ConfirmAlertAction.swift; sourceTree = "<group>"; };
|
|
| 396 | 392 |
0513108A21CA3914004EF1BE /* ColorQR.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ColorQR.swift; sourceTree = "<group>"; };
|
| 397 | 393 |
0513108B21CA3914004EF1BE /* QRCodeMaskView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = QRCodeMaskView.swift; sourceTree = "<group>"; };
|
| 398 | 394 |
0513108C21CA3914004EF1BE /* QRCodeScanDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = QRCodeScanDelegate.swift; sourceTree = "<group>"; };
|
@@ -649,6 +645,14 @@ |
||
| 649 | 645 |
path = Animationes; |
| 650 | 646 |
sourceTree = "<group>"; |
| 651 | 647 |
}; |
| 648 |
+ 050D71A122545CE20076CE06 /* NavigationController */ = {
|
|
| 649 |
+ isa = PBXGroup; |
|
| 650 |
+ children = ( |
|
| 651 |
+ 050D71A222545D550076CE06 /* NavigationController.swift */, |
|
| 652 |
+ ); |
|
| 653 |
+ path = NavigationController; |
|
| 654 |
+ sourceTree = "<group>"; |
|
| 655 |
+ }; |
|
| 652 | 656 |
05130F2F21C94B32004EF1BE /* PaiaiUIKit */ = {
|
| 653 | 657 |
isa = PBXGroup; |
| 654 | 658 |
children = ( |
@@ -675,6 +679,7 @@ |
||
| 675 | 679 |
05130F4D21C94B72004EF1BE /* UIKit */ = {
|
| 676 | 680 |
isa = PBXGroup; |
| 677 | 681 |
children = ( |
| 682 |
+ 050D71A122545CE20076CE06 /* NavigationController */, |
|
| 678 | 683 |
055BB53F220AEA4E009548AA /* Nibless */, |
| 679 | 684 |
0584FD7A21FABA0300FA1E3E /* Present */, |
| 680 | 685 |
05C8D21E21EDD5A80001E847 /* NavigationBar */, |
@@ -1058,9 +1063,6 @@ |
||
| 1058 | 1063 |
057317A321F5C6C0009B2FCE /* BottomCancelItem.swift */, |
| 1059 | 1064 |
059B58A721F83B1600FA64C2 /* CenterCancelItem.swift */, |
| 1060 | 1065 |
059B58A921F83B2E00FA64C2 /* CenterConfirmItem.swift */, |
| 1061 |
- 0513106F21CA3907004EF1BE /* CancelAlertAction.swift */, |
|
| 1062 |
- 0513107121CA3907004EF1BE /* DestructiveAlertAction.swift */, |
|
| 1063 |
- 0513107321CA3907004EF1BE /* ConfirmAlertAction.swift */, |
|
| 1064 | 1066 |
); |
| 1065 | 1067 |
path = AlertAction; |
| 1066 | 1068 |
sourceTree = "<group>"; |
@@ -1294,6 +1296,7 @@ |
||
| 1294 | 1296 |
7737858CEE753530C312F2CB /* Frameworks */, |
| 1295 | 1297 |
); |
| 1296 | 1298 |
sourceTree = "<group>"; |
| 1299 |
+ usesTabs = 0; |
|
| 1297 | 1300 |
}; |
| 1298 | 1301 |
6CEBD1001CA8D680004DBDE0 /* Products */ = {
|
| 1299 | 1302 |
isa = PBXGroup; |
@@ -1484,7 +1487,7 @@ |
||
| 1484 | 1487 |
attributes = {
|
| 1485 | 1488 |
LastSwiftUpdateCheck = 1010; |
| 1486 | 1489 |
LastUpgradeCheck = 1020; |
| 1487 |
- ORGANIZATIONNAME = yb; |
|
| 1490 |
+ ORGANIZATIONNAME = FFIB; |
|
| 1488 | 1491 |
TargetAttributes = {
|
| 1489 | 1492 |
05130F2D21C94B32004EF1BE = {
|
| 1490 | 1493 |
CreatedOnToolsVersion = 10.1; |
@@ -1524,7 +1527,7 @@ |
||
| 1524 | 1527 |
}; |
| 1525 | 1528 |
}; |
| 1526 | 1529 |
buildConfigurationList = 6CEBD0FA1CA8D680004DBDE0 /* Build configuration list for PBXProject "Paiai" */; |
| 1527 |
- compatibilityVersion = "Xcode 3.2"; |
|
| 1530 |
+ compatibilityVersion = "Xcode 10.0"; |
|
| 1528 | 1531 |
developmentRegion = en; |
| 1529 | 1532 |
hasScannedForEncodings = 0; |
| 1530 | 1533 |
knownRegions = ( |
@@ -1627,7 +1630,6 @@ |
||
| 1627 | 1630 |
05C8D21D21EDD3770001E847 /* NavigationBarInteractivePopDeletegate.swift in Sources */, |
| 1628 | 1631 |
05C8D22421EED92F0001E847 /* NavigationBarPushAndPopDelegate.swift in Sources */, |
| 1629 | 1632 |
05130FFD21CA1B39004EF1BE /* HardwareAuthorization.swift in Sources */, |
| 1630 |
- 0513107D21CA3907004EF1BE /* CancelAlertAction.swift in Sources */, |
|
| 1631 | 1633 |
05130FFE21CA1B39004EF1BE /* WaterfallFlowLayout.swift in Sources */, |
| 1632 | 1634 |
05130FFF21CA1B39004EF1BE /* WaterfallFlowConfiguration.swift in Sources */, |
| 1633 | 1635 |
055BB53E220AEA3B009548AA /* NiblessViewController.swift in Sources */, |
@@ -1639,12 +1641,10 @@ |
||
| 1639 | 1641 |
0513100121CA1B39004EF1BE /* CGPointExt.swift in Sources */, |
| 1640 | 1642 |
0584FD7521F9C70D00FA1E3E /* SideAnimator.swift in Sources */, |
| 1641 | 1643 |
0584FD7721F9C8A300FA1E3E /* PresentAnimatorDelegate.swift in Sources */, |
| 1642 |
- 0513107F21CA3907004EF1BE /* DestructiveAlertAction.swift in Sources */, |
|
| 1643 | 1644 |
059B589F21F7103100FA64C2 /* AlertItem.swift in Sources */, |
| 1644 | 1645 |
059B58A621F7235D00FA64C2 /* AlertAction.swift in Sources */, |
| 1645 | 1646 |
0513109821CA3915004EF1BE /* QRCodeScanResult.swift in Sources */, |
| 1646 | 1647 |
0513100221CA1B39004EF1BE /* CGSizeExt.swift in Sources */, |
| 1647 |
- 0513108121CA3907004EF1BE /* ConfirmAlertAction.swift in Sources */, |
|
| 1648 | 1648 |
05C8D22221EED6860001E847 /* NavigationBarInteractiveViewController.swift in Sources */, |
| 1649 | 1649 |
0513109A21CA3915004EF1BE /* QRCodeScanView.swift in Sources */, |
| 1650 | 1650 |
0513100721CA1B39004EF1BE /* UIViewController+UIBarButtonItem.swift in Sources */, |
@@ -1671,6 +1671,7 @@ |
||
| 1671 | 1671 |
0513101921CA1B39004EF1BE /* UIImageExt.swift in Sources */, |
| 1672 | 1672 |
05C8D22921EF0A9F0001E847 /* NavigationControllerProxy.swift in Sources */, |
| 1673 | 1673 |
05D3A3D02200288400A29A20 /* Storyboarded.swift in Sources */, |
| 1674 |
+ 050D71A322545D550076CE06 /* NavigationController.swift in Sources */, |
|
| 1674 | 1675 |
05C0CEFB21F85A7700993DE2 /* ActionSheetController.swift in Sources */, |
| 1675 | 1676 |
05C8D21421ED8B9B0001E847 /* NavigationBackViewController.swift in Sources */, |
| 1676 | 1677 |
0584FD7C21FABC1400FA1E3E /* PresentExtension.swift in Sources */, |
@@ -1937,7 +1938,11 @@ |
||
| 1937 | 1938 |
INFOPLIST_FILE = PaiaiUIKit/Info.plist; |
| 1938 | 1939 |
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; |
| 1939 | 1940 |
IPHONEOS_DEPLOYMENT_TARGET = 10.0; |
| 1940 |
- LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; |
|
| 1941 |
+ LD_RUNPATH_SEARCH_PATHS = ( |
|
| 1942 |
+ "$(inherited)", |
|
| 1943 |
+ "@executable_path/Frameworks", |
|
| 1944 |
+ "@loader_path/Frameworks", |
|
| 1945 |
+ ); |
|
| 1941 | 1946 |
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; |
| 1942 | 1947 |
MTL_FAST_MATH = YES; |
| 1943 | 1948 |
PRODUCT_BUNDLE_IDENTIFIER = FFIB.PaiaiUIKit; |
@@ -1973,7 +1978,11 @@ |
||
| 1973 | 1978 |
INFOPLIST_FILE = PaiaiUIKit/Info.plist; |
| 1974 | 1979 |
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; |
| 1975 | 1980 |
IPHONEOS_DEPLOYMENT_TARGET = 10.0; |
| 1976 |
- LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; |
|
| 1981 |
+ LD_RUNPATH_SEARCH_PATHS = ( |
|
| 1982 |
+ "$(inherited)", |
|
| 1983 |
+ "@executable_path/Frameworks", |
|
| 1984 |
+ "@loader_path/Frameworks", |
|
| 1985 |
+ ); |
|
| 1977 | 1986 |
MTL_FAST_MATH = YES; |
| 1978 | 1987 |
PRODUCT_BUNDLE_IDENTIFIER = FFIB.PaiaiUIKit; |
| 1979 | 1988 |
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; |
@@ -2013,7 +2022,11 @@ |
||
| 2013 | 2022 |
INFOPLIST_FILE = PaiaiDataKit/Info.plist; |
| 2014 | 2023 |
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; |
| 2015 | 2024 |
IPHONEOS_DEPLOYMENT_TARGET = 10.0; |
| 2016 |
- LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; |
|
| 2025 |
+ LD_RUNPATH_SEARCH_PATHS = ( |
|
| 2026 |
+ "$(inherited)", |
|
| 2027 |
+ "@executable_path/Frameworks", |
|
| 2028 |
+ "@loader_path/Frameworks", |
|
| 2029 |
+ ); |
|
| 2017 | 2030 |
LIBRARY_SEARCH_PATHS = ( |
| 2018 | 2031 |
"$(inherited)", |
| 2019 | 2032 |
"$(PROJECT_DIR)/Paiai/wxSDK", |
@@ -2062,7 +2075,11 @@ |
||
| 2062 | 2075 |
INFOPLIST_FILE = PaiaiDataKit/Info.plist; |
| 2063 | 2076 |
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; |
| 2064 | 2077 |
IPHONEOS_DEPLOYMENT_TARGET = 10.0; |
| 2065 |
- LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; |
|
| 2078 |
+ LD_RUNPATH_SEARCH_PATHS = ( |
|
| 2079 |
+ "$(inherited)", |
|
| 2080 |
+ "@executable_path/Frameworks", |
|
| 2081 |
+ "@loader_path/Frameworks", |
|
| 2082 |
+ ); |
|
| 2066 | 2083 |
LIBRARY_SEARCH_PATHS = ( |
| 2067 | 2084 |
"$(inherited)", |
| 2068 | 2085 |
"$(PROJECT_DIR)/Paiai/wxSDK", |
@@ -2104,7 +2121,11 @@ |
||
| 2104 | 2121 |
INFOPLIST_FILE = Paiai_iOS/Info.plist; |
| 2105 | 2122 |
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; |
| 2106 | 2123 |
IPHONEOS_DEPLOYMENT_TARGET = 10.0; |
| 2107 |
- LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; |
|
| 2124 |
+ LD_RUNPATH_SEARCH_PATHS = ( |
|
| 2125 |
+ "$(inherited)", |
|
| 2126 |
+ "@executable_path/Frameworks", |
|
| 2127 |
+ "@loader_path/Frameworks", |
|
| 2128 |
+ ); |
|
| 2108 | 2129 |
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; |
| 2109 | 2130 |
MTL_FAST_MATH = YES; |
| 2110 | 2131 |
PRODUCT_BUNDLE_IDENTIFIER = "com.Paiai-iOS"; |
@@ -2144,7 +2165,11 @@ |
||
| 2144 | 2165 |
INFOPLIST_FILE = Paiai_iOS/Info.plist; |
| 2145 | 2166 |
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; |
| 2146 | 2167 |
IPHONEOS_DEPLOYMENT_TARGET = 10.0; |
| 2147 |
- LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; |
|
| 2168 |
+ LD_RUNPATH_SEARCH_PATHS = ( |
|
| 2169 |
+ "$(inherited)", |
|
| 2170 |
+ "@executable_path/Frameworks", |
|
| 2171 |
+ "@loader_path/Frameworks", |
|
| 2172 |
+ ); |
|
| 2148 | 2173 |
MTL_FAST_MATH = YES; |
| 2149 | 2174 |
PRODUCT_BUNDLE_IDENTIFIER = "com.Paiai-iOS"; |
| 2150 | 2175 |
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; |
@@ -2267,7 +2292,8 @@ |
||
| 2267 | 2292 |
"-all_load", |
| 2268 | 2293 |
); |
| 2269 | 2294 |
SDKROOT = iphoneos; |
| 2270 |
- SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; |
|
| 2295 |
+ SWIFT_COMPILATION_MODE = wholemodule; |
|
| 2296 |
+ SWIFT_OPTIMIZATION_LEVEL = "-O"; |
|
| 2271 | 2297 |
VALIDATE_PRODUCT = YES; |
| 2272 | 2298 |
}; |
| 2273 | 2299 |
name = Release; |
@@ -2301,7 +2327,10 @@ |
||
| 2301 | 2327 |
); |
| 2302 | 2328 |
INFOPLIST_FILE = PaiAi/Info.plist; |
| 2303 | 2329 |
IPHONEOS_DEPLOYMENT_TARGET = 10.0; |
| 2304 |
- LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; |
|
| 2330 |
+ LD_RUNPATH_SEARCH_PATHS = ( |
|
| 2331 |
+ "$(inherited)", |
|
| 2332 |
+ "@executable_path/Frameworks", |
|
| 2333 |
+ ); |
|
| 2305 | 2334 |
LIBRARY_SEARCH_PATHS = ( |
| 2306 | 2335 |
"$(inherited)", |
| 2307 | 2336 |
"$(PROJECT_DIR)/Paiai/wxSDK", |
@@ -2348,7 +2377,10 @@ |
||
| 2348 | 2377 |
); |
| 2349 | 2378 |
INFOPLIST_FILE = PaiAi/Info.plist; |
| 2350 | 2379 |
IPHONEOS_DEPLOYMENT_TARGET = 10.0; |
| 2351 |
- LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; |
|
| 2380 |
+ LD_RUNPATH_SEARCH_PATHS = ( |
|
| 2381 |
+ "$(inherited)", |
|
| 2382 |
+ "@executable_path/Frameworks", |
|
| 2383 |
+ ); |
|
| 2352 | 2384 |
LIBRARY_SEARCH_PATHS = ( |
| 2353 | 2385 |
"$(inherited)", |
| 2354 | 2386 |
"$(PROJECT_DIR)/Paiai/wxSDK", |
@@ -34,6 +34,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate, WXApiDelegate {
|
||
| 34 | 34 |
let rootViewController = ContainerViewController() |
| 35 | 35 |
let nav = UINavigationController(rootViewController: rootViewController) |
| 36 | 36 |
|
| 37 |
+ rootViewController.setupNavigationBarPushAndPopDelegate() |
|
| 37 | 38 |
window = UIWindow(frame: UIScreen.main.bounds) |
| 38 | 39 |
window?.rootViewController = nav |
| 39 | 40 |
window?.makeKeyAndVisible() |
@@ -25,6 +25,8 @@ |
||
| 25 | 25 |
<dict> |
| 26 | 26 |
<key>CFBundleTypeRole</key> |
| 27 | 27 |
<string>Editor</string> |
| 28 |
+ <key>CFBundleURLName</key> |
|
| 29 |
+ <string>weixin</string> |
|
| 28 | 30 |
<key>CFBundleURLSchemes</key> |
| 29 | 31 |
<array> |
| 30 | 32 |
<string>wx4e22a0c8ae6d766d</string> |
@@ -43,6 +45,8 @@ |
||
| 43 | 45 |
<dict> |
| 44 | 46 |
<key>CFBundleTypeRole</key> |
| 45 | 47 |
<string>Editor</string> |
| 48 |
+ <key>CFBundleURLName</key> |
|
| 49 |
+ <string>weibo</string> |
|
| 46 | 50 |
<key>CFBundleURLSchemes</key> |
| 47 | 51 |
<array> |
| 48 | 52 |
<string>wb2730190333</string> |
@@ -74,6 +74,7 @@ class NetworkApi {
|
||
| 74 | 74 |
if status == 200 {
|
| 75 | 75 |
observer(.success(data)) |
| 76 | 76 |
} else {
|
| 77 |
+ print(json) |
|
| 77 | 78 |
Toast.show(message: (json["description"] as? String) ?? "") |
| 78 | 79 |
observer(.error(BusinessError(id: status))) |
| 79 | 80 |
} |
@@ -17,12 +17,12 @@ struct WXUserInfoRemoteAPI: UserInfoRemoteAPI {
|
||
| 17 | 17 |
init() {}
|
| 18 | 18 |
|
| 19 | 19 |
func login() -> Single<UserInfo> {
|
| 20 |
- #if (arch(i386) || arch(x86_64)) |
|
| 20 |
+// #if (arch(i386) || arch(x86_64)) |
|
| 21 | 21 |
return Single.create(subscribe: { (observer) in
|
| 22 | 22 |
observer(.success(UserInfo(json: ["user_id": "fiDz2Ms" as AnyObject, "userName": "郑剑飞" as AnyObject, "photoPath": "https://wx.qlogo.cn/mmopen/vi_32/Q0j4TwGTfTJibSYLgvXpMakvD9FaCqfiaWqcMiaiaz905YxWPuO4hy8F2lGheV7kVr9vKKXFgmL1S5s4QJgxwuwtVw/132" as AnyObject]))) |
| 23 | 23 |
return Disposables.create() |
| 24 | 24 |
}) |
| 25 |
- #else |
|
| 25 |
+// #else |
|
| 26 | 26 |
loginWithWeChat() |
| 27 | 27 |
return addWXLoginDidFinish().flatMap({
|
| 28 | 28 |
return self.getWXToken(param: $0) |
@@ -33,7 +33,7 @@ struct WXUserInfoRemoteAPI: UserInfoRemoteAPI {
|
||
| 33 | 33 |
}).do(onSuccess: { res in
|
| 34 | 34 |
print(res) |
| 35 | 35 |
}) |
| 36 |
- #endif |
|
| 36 |
+// #endif |
|
| 37 | 37 |
} |
| 38 | 38 |
|
| 39 | 39 |
fileprivate func loginWithWeChat() {
|
@@ -71,9 +71,7 @@ public class UserInfoViewModel {
|
||
| 71 | 71 |
repository.guestLogin().subscribe(onSuccess: { (userInfo) in
|
| 72 | 72 |
self.shareUserInfo.accept(userInfo) |
| 73 | 73 |
self._loginCompleted.onNext(()) |
| 74 |
- }) { (error) in
|
|
| 75 |
- #warning("错误处理")
|
|
| 76 |
- }.disposed(by: disposeBag) |
|
| 74 |
+ }).disposed(by: disposeBag) |
|
| 77 | 75 |
} |
| 78 | 76 |
|
| 79 | 77 |
public func wxLogin() {
|
@@ -81,10 +79,8 @@ public class UserInfoViewModel {
|
||
| 81 | 79 |
repository.wxLogin().subscribe(onSuccess: { (userInfo) in
|
| 82 | 80 |
self.shareUserInfo.accept(userInfo) |
| 83 | 81 |
self._loginCompleted.onNext(()) |
| 84 |
- }) { (error) in
|
|
| 85 |
- print(error) |
|
| 86 |
- #warning("错误处理")
|
|
| 87 |
- }.disposed(by: disposeBag) |
|
| 82 |
+ Toast.hide() |
|
| 83 |
+ }).disposed(by: disposeBag) |
|
| 88 | 84 |
} |
| 89 | 85 |
|
| 90 | 86 |
deinit {
|
@@ -1,16 +0,0 @@ |
||
| 1 |
-// |
|
| 2 |
-// CancelAlertAction.swift |
|
| 3 |
-// PaiAi |
|
| 4 |
-// |
|
| 5 |
-// Created by FFIB on 2017/11/20. |
|
| 6 |
-// Copyright © 2017年 yb. All rights reserved. |
|
| 7 |
-// |
|
| 8 |
- |
|
| 9 |
-import UIKit |
|
| 10 |
-// |
|
| 11 |
-//class CancelAlertAction: FFAlertAction {
|
|
| 12 |
-// init() {
|
|
| 13 |
-// super.init(attributedTitle: NSAttributedString(string: "取消", attributes: [NSAttributedString.Key.foregroundColor: UIColor(r: 51, g: 51, b: 51)]), |
|
| 14 |
-// backgroundColor: UIColor(r: 222, g: 222, b: 222), handler: nil) |
|
| 15 |
-// } |
|
| 16 |
-//} |
@@ -1,16 +0,0 @@ |
||
| 1 |
-// |
|
| 2 |
-// ConfirmAlertAction.swift |
|
| 3 |
-// PaiAi |
|
| 4 |
-// |
|
| 5 |
-// Created by FFIB on 2017/11/20. |
|
| 6 |
-// Copyright © 2017年 yb. All rights reserved. |
|
| 7 |
-// |
|
| 8 |
- |
|
| 9 |
-import UIKit |
|
| 10 |
- |
|
| 11 |
-//class ConfirmAlertAction: FFAlertAction {
|
|
| 12 |
-// init(title: String = "确定", handler: ((FFAlertAction) -> Void)?) {
|
|
| 13 |
-// super.init(attributedTitle: NSAttributedString(string: title, attributes: [NSAttributedString.Key.foregroundColor: UIColor.white]), |
|
| 14 |
-// backgroundColor: UIColor(r: 129, g: 209, b: 53), handler: handler) |
|
| 15 |
-// } |
|
| 16 |
-//} |
@@ -1,16 +0,0 @@ |
||
| 1 |
-// |
|
| 2 |
-// DestructiveAlertAction.swift |
|
| 3 |
-// PaiAi |
|
| 4 |
-// |
|
| 5 |
-// Created by FFIB on 2017/11/20. |
|
| 6 |
-// Copyright © 2017年 yb. All rights reserved. |
|
| 7 |
-// |
|
| 8 |
- |
|
| 9 |
-import UIKit |
|
| 10 |
- |
|
| 11 |
-//class DestructiveAlertAction: FFAlertAction {
|
|
| 12 |
-// init(title: String, handler: ((FFAlertAction) -> Void)?) {
|
|
| 13 |
-// super.init(attributedTitle: NSAttributedString(string: title, attributes: [NSAttributedString.Key.foregroundColor: UIColor(r: 248, g: 86, b: 131)]), |
|
| 14 |
-// backgroundColor: UIColor.white, handler: handler) |
|
| 15 |
-// } |
|
| 16 |
-//} |
@@ -15,7 +15,7 @@ public extension GestureRecognizerDelegate where Self: UIViewController & Naviga |
||
| 15 | 15 |
gestureRecognizer.isKind(of: UIPanGestureRecognizer.self), |
| 16 | 16 |
let pan = gestureRecognizer as? UIPanGestureRecognizer {
|
| 17 | 17 |
let point = pan.translation(in: self.view) |
| 18 |
- if point.x > 30 {
|
|
| 18 |
+ if point.x > 0 {
|
|
| 19 | 19 |
return true |
| 20 | 20 |
} |
| 21 | 21 |
} |
@@ -10,46 +10,59 @@ import UIKit |
||
| 10 | 10 |
|
| 11 | 11 |
public protocol NavigationBarInOutAnimator: class {
|
| 12 | 12 |
var navigationView: UIView { get }
|
| 13 |
- func navigationBarFadeIn() |
|
| 14 |
- func navigationBarFadeOut() |
|
| 15 |
- func navigationBarFadeAndMoveIn() |
|
| 16 |
- func navigationBarFadeAndMoveOut() |
|
| 13 |
+ func navigationBarFadeIn(percentage: CGFloat) |
|
| 14 |
+ func navigationBarFadeOut(percentage: CGFloat) |
|
| 15 |
+ func navigationBarFadeAndMoveIn(percentage: CGFloat) |
|
| 16 |
+ func navigationBarFadeAndMoveOut(percentage: CGFloat) |
|
| 17 | 17 |
func navigationBarFadeOutWithPercentage(_ percentage: CGFloat) |
| 18 | 18 |
func navigationBarFadeInWithPercentage(_ percentage: CGFloat) |
| 19 | 19 |
} |
| 20 | 20 |
|
| 21 | 21 |
public extension NavigationBarInOutAnimator where Self: UIViewController & NavigationBarPushAndPopDelegate {
|
| 22 |
- func navigationBarFadeIn() {
|
|
| 23 |
- UIView.animate(withDuration: 0.3, animations: {
|
|
| 22 |
+ func navigationBarFadeIn(percentage: CGFloat) {
|
|
| 23 |
+ UIView.animate(withDuration: TimeInterval(0.3 * percentage), |
|
| 24 |
+ animations: {
|
|
| 24 | 25 |
self.navigationView.alpha = 1 |
| 25 | 26 |
}, completion: nil) |
| 26 | 27 |
} |
| 27 | 28 |
|
| 28 |
- func navigationBarFadeOut() {
|
|
| 29 |
- UIView.animate(withDuration: 0.3, animations: {
|
|
| 29 |
+ func navigationBarFadeOut(percentage: CGFloat) {
|
|
| 30 |
+ UIView.animate(withDuration: TimeInterval(0.3 * percentage), |
|
| 31 |
+ animations: {
|
|
| 30 | 32 |
self.navigationView.alpha = 0 |
| 31 | 33 |
}, completion: nil) |
| 32 | 34 |
} |
| 33 | 35 |
|
| 34 |
- func navigationBarFadeAndMoveIn() {
|
|
| 35 |
- setNavigationBar() |
|
| 36 |
- navigationController?.navigationBar.layoutIfNeeded() |
|
| 36 |
+ func navigationBarFadeAndMoveIn(percentage: CGFloat) {
|
|
| 37 |
+// setNavigationBar() |
|
| 38 |
+// navigationController?.navigationBar.layoutIfNeeded() |
|
| 37 | 39 |
|
| 38 |
- let originX = navigationView.center.x |
|
| 39 |
- navigationView.center.x = UIScreen.main.bounds.width |
|
| 40 |
+// let originX = navigationView.center.x |
|
| 41 |
+// navigationView.center.x = UIScreen.main.bounds.width |
|
| 40 | 42 |
|
| 41 |
- UIView.animate(withDuration: 0.3, animations: {
|
|
| 43 |
+ UIView.animate(withDuration: TimeInterval(0.3 * percentage), |
|
| 44 |
+ animations: {
|
|
| 42 | 45 |
self.navigationView.alpha = 1 |
| 43 |
- self.navigationView.center.x = originX |
|
| 44 |
- }, completion: nil) |
|
| 46 |
+ self.navigationView.center.x = UIScreen.main.bounds.width / 2 |
|
| 47 |
+ }, completion: { flag in
|
|
| 48 |
+// if flag {
|
|
| 49 |
+ self.setNavigationBar() |
|
| 50 |
+// } |
|
| 51 |
+ print("move in \(flag)")
|
|
| 52 |
+ }) |
|
| 45 | 53 |
} |
| 46 | 54 |
|
| 47 |
- func navigationBarFadeAndMoveOut() {
|
|
| 48 |
- UIView.animate(withDuration: 0.3, animations: {
|
|
| 55 |
+ func navigationBarFadeAndMoveOut(percentage: CGFloat) {
|
|
| 56 |
+ print(self.navigationView.center) |
|
| 57 |
+ UIView.animate(withDuration: TimeInterval(0.3 * percentage), |
|
| 58 |
+ animations: {
|
|
| 49 | 59 |
self.navigationView.alpha = 0 |
| 50 | 60 |
self.navigationView.center.x = UIScreen.main.bounds.width |
| 51 |
- }, completion: { _ in
|
|
| 52 |
- self.navigationView.removeFromSuperview() |
|
| 61 |
+ }, completion: { flag in
|
|
| 62 |
+// if flag {
|
|
| 63 |
+ self.navigationView.removeFromSuperview() |
|
| 64 |
+// } |
|
| 65 |
+ print("move out \(flag)")
|
|
| 53 | 66 |
}) |
| 54 | 67 |
} |
| 55 | 68 |
|
@@ -29,8 +29,9 @@ extension UIViewController {
|
||
| 29 | 29 |
/// navigationController?.visibleViewController == self pop to viewController |
| 30 | 30 |
|
| 31 | 31 |
let percentageAnimation: ((CGFloat) -> Void) |
| 32 |
- let fadeInAnimation: (() -> Void) |
|
| 33 |
- let fadeOutAnimation: (() -> Void) |
|
| 32 |
+ let fadeInAnimation: ((CGFloat) -> Void) |
|
| 33 |
+ let fadeOutAnimation: ((CGFloat) -> Void) |
|
| 34 |
+ |
|
| 34 | 35 |
if navigationController == nil {
|
| 35 | 36 |
percentageAnimation = self.navigationBarFadeOutWithPercentage |
| 36 | 37 |
fadeInAnimation = self.navigationBarFadeAndMoveIn |
@@ -49,10 +50,10 @@ extension UIViewController {
|
||
| 49 | 50 |
|
| 50 | 51 |
if (percentage > 0.5 && navigationController == nil) || |
| 51 | 52 |
(percentage < 0.5 && navigationController?.visibleViewController == self) {
|
| 52 |
- fadeOutAnimation() |
|
| 53 |
+ fadeOutAnimation(1 - percentage) |
|
| 53 | 54 |
} else if (percentage < 0.5 && navigationController == nil) || |
| 54 | 55 |
(percentage > 0.5 && navigationController?.visibleViewController == self) {
|
| 55 |
- fadeInAnimation() |
|
| 56 |
+ fadeInAnimation(percentage) |
|
| 56 | 57 |
} |
| 57 | 58 |
} |
| 58 | 59 |
|
@@ -29,11 +29,11 @@ public extension NavigationControllerDelegate where Self: UIViewController {
|
||
| 29 | 29 |
to toVC: UIViewController) -> UIViewControllerAnimatedTransitioning? {
|
| 30 | 30 |
|
| 31 | 31 |
if operation == .push {
|
| 32 |
- (toVC as? NavigationBarInOutAnimator)?.navigationBarFadeAndMoveIn() |
|
| 33 |
- (fromVC as? NavigationBarInOutAnimator)?.navigationBarFadeOut() |
|
| 32 |
+ (toVC as? NavigationBarInOutAnimator)?.navigationBarFadeAndMoveIn(percentage: 1) |
|
| 33 |
+ (fromVC as? NavigationBarInOutAnimator)?.navigationBarFadeOut(percentage: 1) |
|
| 34 | 34 |
} else {
|
| 35 |
- (toVC as? NavigationBarInOutAnimator)?.navigationBarFadeIn() |
|
| 36 |
- (fromVC as? NavigationBarInOutAnimator)?.navigationBarFadeAndMoveOut() |
|
| 35 |
+ (toVC as? NavigationBarInOutAnimator)?.navigationBarFadeIn(percentage: 1) |
|
| 36 |
+ (fromVC as? NavigationBarInOutAnimator)?.navigationBarFadeAndMoveOut(percentage: 1) |
|
| 37 | 37 |
} |
| 38 | 38 |
|
| 39 | 39 |
return nil |
@@ -0,0 +1,29 @@ |
||
| 1 |
+// |
|
| 2 |
+// NavigationController.swift |
|
| 3 |
+// PaiaiUIKit |
|
| 4 |
+// |
|
| 5 |
+// Created by ffib on 2019/4/3. |
|
| 6 |
+// Copyright © 2019 yb. All rights reserved. |
|
| 7 |
+// |
|
| 8 |
+ |
|
| 9 |
+import UIKit |
|
| 10 |
+ |
|
| 11 |
+class NavigationController: UINavigationController {
|
|
| 12 |
+ |
|
| 13 |
+} |
|
| 14 |
+ |
|
| 15 |
+//class NavigationController: UINavigationController {
|
|
| 16 |
+// |
|
| 17 |
+// override func viewDidLoad() {
|
|
| 18 |
+// super.viewDidLoad() |
|
| 19 |
+// |
|
| 20 |
+// // Do any additional setup after loading the view. |
|
| 21 |
+// } |
|
| 22 |
+// |
|
| 23 |
+// func set |
|
| 24 |
+//} |
|
| 25 |
+// |
|
| 26 |
+// |
|
| 27 |
+//extension UIViewController {
|
|
| 28 |
+// n |
|
| 29 |
+//} |
@@ -72,7 +72,6 @@ open class PageViewController: UIViewController {
|
||
| 72 | 72 |
constructViewHierarchy() |
| 73 | 73 |
activateConstraints() |
| 74 | 74 |
setMenuGestureRecognizer() |
| 75 |
- setupNavigationBarPushAndPopDelegate() |
|
| 76 | 75 |
setupNavigationBarInteractivePopDelegate() |
| 77 | 76 |
} |
| 78 | 77 |
|
@@ -74,6 +74,10 @@ final class GroupViewController: UIViewController {
|
||
| 74 | 74 |
} |
| 75 | 75 |
collectionView.startRefreshing(at: .top) |
| 76 | 76 |
} |
| 77 |
+ |
|
| 78 |
+ deinit {
|
|
| 79 |
+ collectionView.endAllRefreshing() |
|
| 80 |
+ } |
|
| 77 | 81 |
} |
| 78 | 82 |
|
| 79 | 83 |
/// UI bindings |
@@ -60,6 +60,10 @@ final class HomeViewController: UIViewController {
|
||
| 60 | 60 |
self.viewModel.preload() |
| 61 | 61 |
} |
| 62 | 62 |
} |
| 63 |
+ |
|
| 64 |
+ deinit {
|
|
| 65 |
+ collectionView.endAllRefreshing() |
|
| 66 |
+ } |
|
| 63 | 67 |
} |
| 64 | 68 |
|
| 65 | 69 |
/// UI bindings |
@@ -88,6 +88,10 @@ final class MessageListViewController: UIViewController {
|
||
| 88 | 88 |
})) |
| 89 | 89 |
presentController(alert) |
| 90 | 90 |
} |
| 91 |
+ |
|
| 92 |
+ deinit {
|
|
| 93 |
+ tableView.endAllRefreshing() |
|
| 94 |
+ } |
|
| 91 | 95 |
} |
| 92 | 96 |
|
| 93 | 97 |
fileprivate extension MessageListViewController {
|
@@ -56,6 +56,10 @@ final class MineGroupViewController: UIViewController {
|
||
| 56 | 56 |
self.viewModel.preload() |
| 57 | 57 |
} |
| 58 | 58 |
} |
| 59 |
+ |
|
| 60 |
+ deinit {
|
|
| 61 |
+ tableView.endAllRefreshing() |
|
| 62 |
+ } |
|
| 59 | 63 |
} |
| 60 | 64 |
|
| 61 | 65 |
fileprivate extension MineGroupViewController {
|
@@ -53,6 +53,10 @@ final class MineOrderViewController: UIViewController {
|
||
| 53 | 53 |
self.viewModel.preload() |
| 54 | 54 |
} |
| 55 | 55 |
} |
| 56 |
+ |
|
| 57 |
+ deinit {
|
|
| 58 |
+ tableView.endAllRefreshing() |
|
| 59 |
+ } |
|
| 56 | 60 |
} |
| 57 | 61 |
|
| 58 | 62 |
/// binding UI |