From 21c6e1a7f4bc9b49d1d7596100ed43a638a15ace Mon Sep 17 00:00:00 2001
From: Daniel van Hoesel
Date: Mon, 22 Jun 2015 14:30:02 +0200
Subject: [PATCH 01/36] Trigger `viewWillAppear` on mainViewController when
SlideMenuController appears on screen
---
Source/SlideMenuController.swift | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/Source/SlideMenuController.swift b/Source/SlideMenuController.swift
index 530689c..6b47a73 100644
--- a/Source/SlideMenuController.swift
+++ b/Source/SlideMenuController.swift
@@ -154,6 +154,11 @@ class SlideMenuController: UIViewController, UIGestureRecognizerDelegate {
super.viewDidLoad()
edgesForExtendedLayout = UIRectEdge.None
}
+
+ override func viewWillAppear(animated: Bool) {
+ super.viewWillAppear(animated)
+ self.mainViewController?.viewWillAppear(animated)
+ }
override func viewWillLayoutSubviews() {
// topLayoutGuideの値が確定するこのタイミングで各種ViewControllerをセットする
From 52fd892bcd9b298e87eddd3b86a7f232ce9df2ac Mon Sep 17 00:00:00 2001
From: Scott Bates
Date: Fri, 12 Aug 2016 06:22:34 -0700
Subject: [PATCH 02/36] Adding new SlideMenuOptions booleans to allow disabling
of pan or tap gestures
---
Source/SlideMenuController.swift | 42 ++++++++++++++++++++------------
1 file changed, 26 insertions(+), 16 deletions(-)
diff --git a/Source/SlideMenuController.swift b/Source/SlideMenuController.swift
index 272fbd5..a6542bb 100644
--- a/Source/SlideMenuController.swift
+++ b/Source/SlideMenuController.swift
@@ -36,6 +36,8 @@ public struct SlideMenuOptions {
public static var pointOfNoReturnWidth: CGFloat = 44.0
public static var simultaneousGestureRecognizers: Bool = true
public static var opacityViewBackgroundColor: UIColor = UIColor.blackColor()
+ public static var panGesturesEnabled: Bool = true
+ public static var tapGesturesEnabled: Bool = true
}
public class SlideMenuController: UIViewController, UIGestureRecognizerDelegate {
@@ -262,16 +264,20 @@ public class SlideMenuController: UIViewController, UIGestureRecognizerDelegate
public func addLeftGestures() {
if (leftViewController != nil) {
- if leftPanGesture == nil {
- leftPanGesture = UIPanGestureRecognizer(target: self, action: #selector(self.handleLeftPanGesture(_:)))
- leftPanGesture!.delegate = self
- view.addGestureRecognizer(leftPanGesture!)
+ if (SlideMenuOptions.panGesturesEnabled) {
+ if leftPanGesture == nil {
+ leftPanGesture = UIPanGestureRecognizer(target: self, action: #selector(self.handleLeftPanGesture(_:)))
+ leftPanGesture!.delegate = self
+ view.addGestureRecognizer(leftPanGesture!)
+ }
}
- if leftTapGesture == nil {
- leftTapGesture = UITapGestureRecognizer(target: self, action: #selector(self.toggleLeft))
- leftTapGesture!.delegate = self
- view.addGestureRecognizer(leftTapGesture!)
+ if (SlideMenuOptions.tapGesturesEnabled) {
+ if leftTapGesture == nil {
+ leftTapGesture = UITapGestureRecognizer(target: self, action: #selector(self.toggleLeft))
+ leftTapGesture!.delegate = self
+ view.addGestureRecognizer(leftTapGesture!)
+ }
}
}
}
@@ -279,16 +285,20 @@ public class SlideMenuController: UIViewController, UIGestureRecognizerDelegate
public func addRightGestures() {
if (rightViewController != nil) {
- if rightPanGesture == nil {
- rightPanGesture = UIPanGestureRecognizer(target: self, action: #selector(self.handleRightPanGesture(_:)))
- rightPanGesture!.delegate = self
- view.addGestureRecognizer(rightPanGesture!)
+ if (SlideMenuOptions.panGesturesEnabled) {
+ if rightPanGesture == nil {
+ rightPanGesture = UIPanGestureRecognizer(target: self, action: #selector(self.handleRightPanGesture(_:)))
+ rightPanGesture!.delegate = self
+ view.addGestureRecognizer(rightPanGesture!)
+ }
}
- if rightTapGesture == nil {
- rightTapGesture = UITapGestureRecognizer(target: self, action: #selector(self.toggleRight))
- rightTapGesture!.delegate = self
- view.addGestureRecognizer(rightTapGesture!)
+ if (SlideMenuOptions.tapGesturesEnabled) {
+ if rightTapGesture == nil {
+ rightTapGesture = UITapGestureRecognizer(target: self, action: #selector(self.toggleRight))
+ rightTapGesture!.delegate = self
+ view.addGestureRecognizer(rightTapGesture!)
+ }
}
}
}
From 072e2e243ced3bdd40f78fb92b18ade2e0b13155 Mon Sep 17 00:00:00 2001
From: dekatotoro
Date: Mon, 12 Sep 2016 11:08:12 +0900
Subject: [PATCH 03/36] Update sample project.
---
SlideMenuControllerSwift/Info.plist | 11 +++++++++++
SlideMenuControllerSwift/UIImageView.swift | 2 +-
Source/SlideMenuController.swift | 2 +-
3 files changed, 13 insertions(+), 2 deletions(-)
diff --git a/SlideMenuControllerSwift/Info.plist b/SlideMenuControllerSwift/Info.plist
index 5da0369..fab810f 100644
--- a/SlideMenuControllerSwift/Info.plist
+++ b/SlideMenuControllerSwift/Info.plist
@@ -44,5 +44,16 @@
UIInterfaceOrientationLandscapeLeft
UIInterfaceOrientationLandscapeRight
+ NSAppTransportSecurity
+
+ NSExceptionDomains
+
+ lorempixel.com
+
+ NSTemporaryExceptionAllowsInsecureHTTPLoads
+
+
+
+
diff --git a/SlideMenuControllerSwift/UIImageView.swift b/SlideMenuControllerSwift/UIImageView.swift
index 4d89070..600acdb 100644
--- a/SlideMenuControllerSwift/UIImageView.swift
+++ b/SlideMenuControllerSwift/UIImageView.swift
@@ -17,7 +17,7 @@ extension UIImageView {
return
}
self.alpha = 0
- let url = NSURL(string: "https://ssl.webpack.de/lorempixel.com/\(width)/\(height)/")!
+ let url = NSURL(string: "http://lorempixel.com/\(width)/\(height)/")!
let configuration = NSURLSessionConfiguration.defaultSessionConfiguration()
configuration.timeoutIntervalForRequest = 15
configuration.timeoutIntervalForResource = 15
diff --git a/Source/SlideMenuController.swift b/Source/SlideMenuController.swift
index 588be02..f212d8d 100644
--- a/Source/SlideMenuController.swift
+++ b/Source/SlideMenuController.swift
@@ -187,7 +187,7 @@ public class SlideMenuController: UIViewController, UIGestureRecognizerDelegate
edgesForExtendedLayout = UIRectEdge.None
}
- override func viewWillAppear(animated: Bool) {
+ override public func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
self.mainViewController?.viewWillAppear(animated)
}
From 1cc8e63e906788d9fe2ee6c87e8e2158a7cf817c Mon Sep 17 00:00:00 2001
From: dekatotoro
Date: Mon, 12 Sep 2016 11:15:06 +0900
Subject: [PATCH 04/36] Update podspec and CHANGELOG.
---
CHANGELOG.md | 10 ++++++++++
SlideMenuControllerSwift.podspec | 2 +-
2 files changed, 11 insertions(+), 1 deletion(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index cdeb175..e4be224 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,13 @@
+2.2.3 Release notes (2016-09-12)
+=============================================================
+
+### Enhancements
+* None.
+
+### Bugfixes
+* Added viewWillAppear on mainViewController when SlideMenuController appears on screen
+* Fixes sample project image.
+
2.2.2 Release notes (2016-07-15)
=============================================================
diff --git a/SlideMenuControllerSwift.podspec b/SlideMenuControllerSwift.podspec
index b783edd..16d31f8 100644
--- a/SlideMenuControllerSwift.podspec
+++ b/SlideMenuControllerSwift.podspec
@@ -1,6 +1,6 @@
Pod::Spec.new do |s|
s.name = "SlideMenuControllerSwift"
- s.version = "2.2.2"
+ s.version = "2.2.3"
s.summary = "iOS Slide View based on iQON, Feedly, Google+, Ameba iPhone app."
s.homepage = "https://github.com/dekatotoro/SlideMenuControllerSwift"
s.license = { :type => "MIT", :file => "LICENSE" }
From 0e5c20ad17c9b83b74fd57819acc8a25766a8c5e Mon Sep 17 00:00:00 2001
From: dekatotoro
Date: Mon, 12 Sep 2016 12:53:36 +0900
Subject: [PATCH 05/36] Update to Swift2.3
---
.../project.pbxproj | 29 +++++++++++++------
.../SlideMenuControllerSwift-iOS.xcscheme | 2 +-
.../SlideMenuControllerSwift.xcscheme | 2 +-
SlideMenuControllerSwift/UIImage.swift | 4 +--
SlideMenuControllerSwift/UIView.swift | 2 +-
5 files changed, 25 insertions(+), 14 deletions(-)
diff --git a/SlideMenuControllerSwift.xcodeproj/project.pbxproj b/SlideMenuControllerSwift.xcodeproj/project.pbxproj
index 951ac31..b8d5f39 100644
--- a/SlideMenuControllerSwift.xcodeproj/project.pbxproj
+++ b/SlideMenuControllerSwift.xcodeproj/project.pbxproj
@@ -323,7 +323,7 @@
attributes = {
LastSwiftMigration = 0700;
LastSwiftUpdateCheck = 0700;
- LastUpgradeCheck = 0710;
+ LastUpgradeCheck = 0800;
ORGANIZATIONNAME = "Yuji Hato";
TargetAttributes = {
0E75C5951BE3CA7900844634 = {
@@ -331,9 +331,11 @@
};
C539E6401A315E87003B7CC7 = {
CreatedOnToolsVersion = 6.1.1;
+ LastSwiftMigration = 0800;
};
C539E6581A315E87003B7CC7 = {
CreatedOnToolsVersion = 6.1.1;
+ LastSwiftMigration = 0800;
TestTargetID = C539E6401A315E87003B7CC7;
};
};
@@ -469,6 +471,7 @@
0E75C59F1BE3CA7900844634 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
+ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
CURRENT_PROJECT_VERSION = 1;
DEBUG_INFORMATION_FORMAT = dwarf;
DEFINES_MODULE = YES;
@@ -492,6 +495,7 @@
0E75C5A01BE3CA7900844634 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
+ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
COPY_PHASE_STRIP = NO;
CURRENT_PROJECT_VERSION = 1;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
@@ -525,8 +529,10 @@
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
+ CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+ CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
@@ -535,6 +541,7 @@
ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_DYNAMIC_NO_PIC = NO;
+ GCC_NO_COMMON_BLOCKS = YES;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
@@ -552,6 +559,7 @@
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
+ SWIFT_VERSION = 2.3;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Debug;
@@ -569,8 +577,10 @@
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
+ CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+ CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
@@ -578,6 +588,7 @@
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
+ GCC_NO_COMMON_BLOCKS = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
@@ -587,6 +598,8 @@
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos;
+ SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
+ SWIFT_VERSION = 2.3;
TARGETED_DEVICE_FAMILY = "1,2";
VALIDATE_PRODUCT = YES;
};
@@ -601,6 +614,7 @@
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = "dekatotoro.$(PRODUCT_NAME:rfc1034identifier)";
PRODUCT_NAME = "$(TARGET_NAME)";
+ SWIFT_VERSION = 2.3;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Debug;
@@ -614,6 +628,7 @@
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = "dekatotoro.$(PRODUCT_NAME:rfc1034identifier)";
PRODUCT_NAME = "$(TARGET_NAME)";
+ SWIFT_VERSION = 2.3;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Release;
@@ -622,10 +637,7 @@
isa = XCBuildConfiguration;
buildSettings = {
BUNDLE_LOADER = "$(TEST_HOST)";
- FRAMEWORK_SEARCH_PATHS = (
- "$(SDKROOT)/Developer/Library/Frameworks",
- "$(inherited)",
- );
+ FRAMEWORK_SEARCH_PATHS = "$(inherited)";
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
"$(inherited)",
@@ -634,6 +646,7 @@
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = "dekatotoro.$(PRODUCT_NAME:rfc1034identifier)";
PRODUCT_NAME = "$(TARGET_NAME)";
+ SWIFT_VERSION = 2.3;
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/SlideMenuControllerSwift.app/SlideMenuControllerSwift";
};
name = Debug;
@@ -642,14 +655,12 @@
isa = XCBuildConfiguration;
buildSettings = {
BUNDLE_LOADER = "$(TEST_HOST)";
- FRAMEWORK_SEARCH_PATHS = (
- "$(SDKROOT)/Developer/Library/Frameworks",
- "$(inherited)",
- );
+ FRAMEWORK_SEARCH_PATHS = "$(inherited)";
INFOPLIST_FILE = SlideMenuControllerSwiftTests/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = "dekatotoro.$(PRODUCT_NAME:rfc1034identifier)";
PRODUCT_NAME = "$(TARGET_NAME)";
+ SWIFT_VERSION = 2.3;
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/SlideMenuControllerSwift.app/SlideMenuControllerSwift";
};
name = Release;
diff --git a/SlideMenuControllerSwift.xcodeproj/xcshareddata/xcschemes/SlideMenuControllerSwift-iOS.xcscheme b/SlideMenuControllerSwift.xcodeproj/xcshareddata/xcschemes/SlideMenuControllerSwift-iOS.xcscheme
index 2a00476..5237a5f 100644
--- a/SlideMenuControllerSwift.xcodeproj/xcshareddata/xcschemes/SlideMenuControllerSwift-iOS.xcscheme
+++ b/SlideMenuControllerSwift.xcodeproj/xcshareddata/xcschemes/SlideMenuControllerSwift-iOS.xcscheme
@@ -1,6 +1,6 @@
UIImage {
if CGRectContainsRect(CGRect(origin: CGPointZero, size: self.size), trimRect) {
- if let imageRef = CGImageCreateWithImageInRect(self.CGImage, trimRect) {
+ if let imageRef = CGImageCreateWithImageInRect(self.CGImage!, trimRect) {
return UIImage(CGImage: imageRef)
}
}
@@ -25,4 +25,4 @@ extension UIImage {
return image
}
-}
\ No newline at end of file
+}
diff --git a/SlideMenuControllerSwift/UIView.swift b/SlideMenuControllerSwift/UIView.swift
index 918abc2..944673c 100644
--- a/SlideMenuControllerSwift/UIView.swift
+++ b/SlideMenuControllerSwift/UIView.swift
@@ -11,7 +11,7 @@ import UIKit
extension UIView {
class func loadNib(viewType: T.Type) -> T {
let className = String.className(viewType)
- return NSBundle(forClass: viewType).loadNibNamed(className, owner: nil, options: nil).first as! T
+ return NSBundle(forClass: viewType).loadNibNamed(className, owner: nil, options: nil)!.first as! T
}
class func loadNib() -> Self {
From 3fe58994a0178546b40c2fb4780e2e066ac680e1 Mon Sep 17 00:00:00 2001
From: dekatotoro
Date: Mon, 12 Sep 2016 12:55:32 +0900
Subject: [PATCH 06/36] Fixed stooryboard warning.
---
.../Base.lproj/Main.storyboard | 74 ++++++++-----------
1 file changed, 32 insertions(+), 42 deletions(-)
diff --git a/SlideMenuControllerSwift/Base.lproj/Main.storyboard b/SlideMenuControllerSwift/Base.lproj/Main.storyboard
index 1b5e49b..fcb7db9 100644
--- a/SlideMenuControllerSwift/Base.lproj/Main.storyboard
+++ b/SlideMenuControllerSwift/Base.lproj/Main.storyboard
@@ -1,8 +1,9 @@
-
+
-
+
+
@@ -18,24 +19,23 @@
-
-
+
+
+
@@ -54,18 +54,15 @@
-
-
-
-
+
+
-
-
+
@@ -96,17 +93,14 @@
-
-
-
+
-
-
+
@@ -114,6 +108,8 @@
+
+
@@ -134,25 +130,24 @@
-
-
+
+
+
@@ -171,25 +166,24 @@
-
-
+
+
+
@@ -208,25 +202,24 @@
-
-
+
+
+
@@ -245,35 +238,30 @@
-
-
+
@@ -281,6 +269,8 @@
+
+
From e4a268afadcccd0bb2bbe7617d9b2d0b85ab8a8b Mon Sep 17 00:00:00 2001
From: dekatotoro
Date: Mon, 12 Sep 2016 12:58:32 +0900
Subject: [PATCH 07/36] Update podspec and CHANGELOG.
---
CHANGELOG.md | 10 ++++++++++
SlideMenuControllerSwift.podspec | 2 +-
2 files changed, 11 insertions(+), 1 deletion(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index e4be224..a49408d 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,13 @@
+2.3.0 Release notes (2016-09-12)
+=============================================================
+
+### Enhancements
+* Support Swift2.3
+
+### Bugfixes
+* None.
+
+
2.2.3 Release notes (2016-09-12)
=============================================================
diff --git a/SlideMenuControllerSwift.podspec b/SlideMenuControllerSwift.podspec
index 16d31f8..bead23b 100644
--- a/SlideMenuControllerSwift.podspec
+++ b/SlideMenuControllerSwift.podspec
@@ -1,6 +1,6 @@
Pod::Spec.new do |s|
s.name = "SlideMenuControllerSwift"
- s.version = "2.2.3"
+ s.version = "2.3.0"
s.summary = "iOS Slide View based on iQON, Feedly, Google+, Ameba iPhone app."
s.homepage = "https://github.com/dekatotoro/SlideMenuControllerSwift"
s.license = { :type => "MIT", :file => "LICENSE" }
From a74a0a26c21a49dcd4ed0c24fb352a68f89eff33 Mon Sep 17 00:00:00 2001
From: dekatotoro
Date: Mon, 12 Sep 2016 13:01:06 +0900
Subject: [PATCH 08/36] Support Swift3.0
# Conflicts:
# SlideMenuControllerSwift.xcodeproj/project.pbxproj
# SlideMenuControllerSwift/UIImage.swift
# SlideMenuControllerSwift/UIView.swift
---
.../project.pbxproj | 10 +-
SlideMenuControllerSwift/AppDelegate.swift | 36 +-
.../BaseTableViewCell.swift | 16 +-
.../DataTableViewCell.swift | 4 +-
.../DataTableViewCell.xib | 15 +-
.../ExSlideMenuController.swift | 18 +-
.../GoViewController.swift | 4 +-
.../ImageHeaderView.swift | 4 +-
SlideMenuControllerSwift/ImageHeaderView.xib | 15 +-
.../JavaViewController.swift | 4 +-
.../LeftViewController.swift | 77 ++-
.../MainViewController.swift | 26 +-
.../NonMenuController.swift | 14 +-
SlideMenuControllerSwift/String.swift | 10 +-
.../SubContentsViewController.storyboard | 14 +-
.../SwiftViewController.swift | 4 +-
SlideMenuControllerSwift/UIApplication.swift | 2 +-
SlideMenuControllerSwift/UIColor.swift | 4 +-
SlideMenuControllerSwift/UIImage.swift | 10 +-
SlideMenuControllerSwift/UIImageView.swift | 32 +-
.../UITableViewExtension.swift | 18 +-
SlideMenuControllerSwift/UIView.swift | 4 +-
.../SlideMenuControllerSwiftTests.swift | 2 +-
Source/SlideMenuController.swift | 445 +++++++++---------
24 files changed, 386 insertions(+), 402 deletions(-)
diff --git a/SlideMenuControllerSwift.xcodeproj/project.pbxproj b/SlideMenuControllerSwift.xcodeproj/project.pbxproj
index b8d5f39..a6b6895 100644
--- a/SlideMenuControllerSwift.xcodeproj/project.pbxproj
+++ b/SlideMenuControllerSwift.xcodeproj/project.pbxproj
@@ -559,7 +559,6 @@
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
- SWIFT_VERSION = 2.3;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Debug;
@@ -599,7 +598,6 @@
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos;
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
- SWIFT_VERSION = 2.3;
TARGETED_DEVICE_FAMILY = "1,2";
VALIDATE_PRODUCT = YES;
};
@@ -614,7 +612,7 @@
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = "dekatotoro.$(PRODUCT_NAME:rfc1034identifier)";
PRODUCT_NAME = "$(TARGET_NAME)";
- SWIFT_VERSION = 2.3;
+ SWIFT_VERSION = 3.0;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Debug;
@@ -628,7 +626,7 @@
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = "dekatotoro.$(PRODUCT_NAME:rfc1034identifier)";
PRODUCT_NAME = "$(TARGET_NAME)";
- SWIFT_VERSION = 2.3;
+ SWIFT_VERSION = 3.0;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Release;
@@ -646,7 +644,7 @@
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = "dekatotoro.$(PRODUCT_NAME:rfc1034identifier)";
PRODUCT_NAME = "$(TARGET_NAME)";
- SWIFT_VERSION = 2.3;
+ SWIFT_VERSION = 3.0;
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/SlideMenuControllerSwift.app/SlideMenuControllerSwift";
};
name = Debug;
@@ -660,7 +658,7 @@
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = "dekatotoro.$(PRODUCT_NAME:rfc1034identifier)";
PRODUCT_NAME = "$(TARGET_NAME)";
- SWIFT_VERSION = 2.3;
+ SWIFT_VERSION = 3.0;
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/SlideMenuControllerSwift.app/SlideMenuControllerSwift";
};
name = Release;
diff --git a/SlideMenuControllerSwift/AppDelegate.swift b/SlideMenuControllerSwift/AppDelegate.swift
index 44ef41b..b808fbd 100644
--- a/SlideMenuControllerSwift/AppDelegate.swift
+++ b/SlideMenuControllerSwift/AppDelegate.swift
@@ -14,14 +14,14 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
- private func createMenuView() {
+ fileprivate func createMenuView() {
// create viewController code...
let storyboard = UIStoryboard(name: "Main", bundle: nil)
- let mainViewController = storyboard.instantiateViewControllerWithIdentifier("MainViewController") as! MainViewController
- let leftViewController = storyboard.instantiateViewControllerWithIdentifier("LeftViewController") as! LeftViewController
- let rightViewController = storyboard.instantiateViewControllerWithIdentifier("RightViewController") as! RightViewController
+ let mainViewController = storyboard.instantiateViewController(withIdentifier: "MainViewController") as! MainViewController
+ let leftViewController = storyboard.instantiateViewController(withIdentifier: "LeftViewController") as! LeftViewController
+ let rightViewController = storyboard.instantiateViewController(withIdentifier: "RightViewController") as! RightViewController
let nvc: UINavigationController = UINavigationController(rootViewController: mainViewController)
@@ -37,32 +37,32 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
self.window?.makeKeyAndVisible()
}
- func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
+ func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
self.createMenuView()
return true
}
- func applicationWillResignActive(application: UIApplication) {
+ func applicationWillResignActive(_ application: UIApplication) {
// 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.
// Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game.
}
- func applicationDidEnterBackground(application: UIApplication) {
+ func applicationDidEnterBackground(_ application: UIApplication) {
// 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.
// If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
}
- func applicationWillEnterForeground(application: UIApplication) {
+ func applicationWillEnterForeground(_ application: UIApplication) {
// Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background.
}
- func applicationDidBecomeActive(application: UIApplication) {
+ func applicationDidBecomeActive(_ application: UIApplication) {
// 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.
}
- func applicationWillTerminate(application: UIApplication) {
+ func applicationWillTerminate(_ application: UIApplication) {
// Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
// Saves changes in the application's managed object context before the application terminates.
self.saveContext()
@@ -70,34 +70,34 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
// MARK: - Core Data stack
- lazy var applicationDocumentsDirectory: NSURL = {
+ lazy var applicationDocumentsDirectory: URL = {
// The directory the application uses to store the Core Data store file. This code uses a directory named "dekatotoro.test11" in the application's documents Application Support directory.
- let urls = NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask)
+ let urls = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)
return urls[urls.count-1]
}()
lazy var managedObjectModel: NSManagedObjectModel = {
// The managed object model for the application. This property is not optional. It is a fatal error for the application not to be able to find and load its model.
- let modelURL = NSBundle.mainBundle().URLForResource("test11", withExtension: "momd")!
- return NSManagedObjectModel(contentsOfURL: modelURL)!
+ let modelURL = Bundle.main.url(forResource: "test11", withExtension: "momd")!
+ return NSManagedObjectModel(contentsOf: modelURL)!
}()
lazy var persistentStoreCoordinator: NSPersistentStoreCoordinator? = {
// The persistent store coordinator for the application. This implementation creates and return a coordinator, having added the store for the application to it. This property is optional since there are legitimate error conditions that could cause the creation of the store to fail.
// Create the coordinator and store
var coordinator: NSPersistentStoreCoordinator? = NSPersistentStoreCoordinator(managedObjectModel: self.managedObjectModel)
- let url = self.applicationDocumentsDirectory.URLByAppendingPathComponent("test11.sqlite")
+ let url = self.applicationDocumentsDirectory.appendingPathComponent("test11.sqlite")
var error: NSError? = nil
var failureReason = "There was an error creating or loading the application's saved data."
do {
- try coordinator!.addPersistentStoreWithType(NSSQLiteStoreType, configuration: nil, URL: url, options: nil)
+ try coordinator!.addPersistentStore(ofType: NSSQLiteStoreType, configurationName: nil, at: url, options: nil)
} catch var error1 as NSError {
error = error1
coordinator = nil
// Report any error we got.
var dict = [String: AnyObject]()
- dict[NSLocalizedDescriptionKey] = "Failed to initialize the application's saved data"
- dict[NSLocalizedFailureReasonErrorKey] = failureReason
+ dict[NSLocalizedDescriptionKey] = "Failed to initialize the application's saved data" as AnyObject?
+ dict[NSLocalizedFailureReasonErrorKey] = failureReason as AnyObject?
dict[NSUnderlyingErrorKey] = error
error = NSError(domain: "YOUR_ERROR_DOMAIN", code: 9999, userInfo: dict)
// Replace this with code to handle the error appropriately.
diff --git a/SlideMenuControllerSwift/BaseTableViewCell.swift b/SlideMenuControllerSwift/BaseTableViewCell.swift
index 84789f9..9927cec 100644
--- a/SlideMenuControllerSwift/BaseTableViewCell.swift
+++ b/SlideMenuControllerSwift/BaseTableViewCell.swift
@@ -7,7 +7,7 @@
//
import UIKit
-public class BaseTableViewCell : UITableViewCell {
+open class BaseTableViewCell : UITableViewCell {
class var identifier: String { return String.className(self) }
public required init?(coder aDecoder: NSCoder) {
@@ -20,26 +20,26 @@ public class BaseTableViewCell : UITableViewCell {
setup()
}
- public override func awakeFromNib() {
+ open override func awakeFromNib() {
}
- public func setup() {
+ open func setup() {
}
- public class func height() -> CGFloat {
+ open class func height() -> CGFloat {
return 48
}
- public func setData(data: Any?) {
+ open func setData(_ data: Any?) {
self.backgroundColor = UIColor(hex: "F1F8E9")
- self.textLabel?.font = UIFont.italicSystemFontOfSize(18)
+ self.textLabel?.font = UIFont.italicSystemFont(ofSize: 18)
self.textLabel?.textColor = UIColor(hex: "9E9E9E")
if let menuText = data as? String {
self.textLabel?.text = menuText
}
}
- override public func setHighlighted(highlighted: Bool, animated: Bool) {
+ override open func setHighlighted(_ highlighted: Bool, animated: Bool) {
if highlighted {
self.alpha = 0.4
} else {
@@ -48,7 +48,7 @@ public class BaseTableViewCell : UITableViewCell {
}
// ignore the default handling
- override public func setSelected(selected: Bool, animated: Bool) {
+ override open func setSelected(_ selected: Bool, animated: Bool) {
}
}
diff --git a/SlideMenuControllerSwift/DataTableViewCell.swift b/SlideMenuControllerSwift/DataTableViewCell.swift
index e882050..39444bf 100644
--- a/SlideMenuControllerSwift/DataTableViewCell.swift
+++ b/SlideMenuControllerSwift/DataTableViewCell.swift
@@ -24,7 +24,7 @@ class DataTableViewCell : BaseTableViewCell {
@IBOutlet weak var dataText: UILabel!
override func awakeFromNib() {
- self.dataText?.font = UIFont.italicSystemFontOfSize(16)
+ self.dataText?.font = UIFont.italicSystemFont(ofSize: 16)
self.dataText?.textColor = UIColor(hex: "9E9E9E")
}
@@ -32,7 +32,7 @@ class DataTableViewCell : BaseTableViewCell {
return 80
}
- override func setData(data: Any?) {
+ override func setData(_ data: Any?) {
if let data = data as? DataTableViewCellData {
self.dataImage.setRandomDownloadImage(80, height: 80)
self.dataText.text = data.text
diff --git a/SlideMenuControllerSwift/DataTableViewCell.xib b/SlideMenuControllerSwift/DataTableViewCell.xib
index 381213c..9fd6634 100644
--- a/SlideMenuControllerSwift/DataTableViewCell.xib
+++ b/SlideMenuControllerSwift/DataTableViewCell.xib
@@ -1,8 +1,9 @@
-
+
-
+
+
@@ -11,20 +12,16 @@
-
+