Skip to content

Commit 4e5dadc

Browse files
author
Alexander Perechnev
committed
Merge branch 'release/2.0.3'
2 parents 507ab8e + 83e77ab commit 4e5dadc

6 files changed

Lines changed: 86 additions & 40 deletions

File tree

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
# 2.0.3
2+
3+
* `UIViewController` class extension moved to a new file and fully documented
4+
* Documentation for a few properties of `SOContainerViewController`
5+
16
# 2.0.2
27

38
* Code improvements for `UIViewController` class extension

SidebarOverlay.podspec

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
Pod::Spec.new do |s|
22
s.name = "SidebarOverlay"
3-
s.version = "2.0.2"
3+
s.version = "2.0.3"
44
s.summary = "Yet another implementation of sidebar menu, but here your menu appears over the top view controller."
55

66
s.description = "Yet another implementation of sidebar menu, but here your menu appears over the top view controller. You questions and pull requests are wolcome."
77

88
s.homepage = "https://github.com/alexkrzyzanowski/SidebarOverlay"
99
s.license = { :type => 'MIT', :file => 'LICENSE' }
1010
s.author = { "Alex Krzyzanowski" => "alexkrzyzanowski@icloud.com" }
11-
s.source = { :git => "https://github.com/alexkrzyzanowski/SidebarOverlay.git", :tag => "2.0.2" }
11+
s.source = { :git => "https://github.com/alexkrzyzanowski/SidebarOverlay.git", :tag => "2.0.3" }
1212

1313
s.platform = :ios, '8.0'
1414
s.source_files = 'SidebarOverlay/SidebarOverlay/*.{h,m,swift}'

SidebarOverlay/SidebarOverlay.xcodeproj/project.pbxproj

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
objects = {
88

99
/* Begin PBXBuildFile section */
10+
320B85EB1C5E2612003A6736 /* UIViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 320B85EA1C5E2612003A6736 /* UIViewController.swift */; };
1011
322EAC131C2B3F820077D684 /* SidebarOverlay.h in Headers */ = {isa = PBXBuildFile; fileRef = 322EAC121C2B3F820077D684 /* SidebarOverlay.h */; settings = {ATTRIBUTES = (Public, ); }; };
1112
322EAC1A1C2B3F820077D684 /* SidebarOverlay.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 322EAC0F1C2B3F820077D684 /* SidebarOverlay.framework */; };
1213
322EAC2B1C2B40420077D684 /* SOContainerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 322EAC2A1C2B40420077D684 /* SOContainerViewController.swift */; };
@@ -24,6 +25,7 @@
2425
/* End PBXContainerItemProxy section */
2526

2627
/* Begin PBXFileReference section */
28+
320B85EA1C5E2612003A6736 /* UIViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UIViewController.swift; sourceTree = "<group>"; };
2729
322EAC0F1C2B3F820077D684 /* SidebarOverlay.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SidebarOverlay.framework; sourceTree = BUILT_PRODUCTS_DIR; };
2830
322EAC121C2B3F820077D684 /* SidebarOverlay.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SidebarOverlay.h; sourceTree = "<group>"; };
2931
322EAC141C2B3F820077D684 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
@@ -76,6 +78,7 @@
7678
322EAC121C2B3F820077D684 /* SidebarOverlay.h */,
7779
322EAC141C2B3F820077D684 /* Info.plist */,
7880
322EAC2A1C2B40420077D684 /* SOContainerViewController.swift */,
81+
320B85EA1C5E2612003A6736 /* UIViewController.swift */,
7982
);
8083
path = SidebarOverlay;
8184
sourceTree = "<group>";
@@ -198,6 +201,7 @@
198201
isa = PBXSourcesBuildPhase;
199202
buildActionMask = 2147483647;
200203
files = (
204+
320B85EB1C5E2612003A6736 /* UIViewController.swift in Sources */,
201205
322EAC2B1C2B40420077D684 /* SOContainerViewController.swift in Sources */,
202206
);
203207
runOnlyForDeploymentPostprocessing = 0;

SidebarOverlay/SidebarOverlay/Info.plist

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
<key>CFBundlePackageType</key>
1616
<string>FMWK</string>
1717
<key>CFBundleShortVersionString</key>
18-
<string>2.0.2</string>
18+
<string>2.0.3</string>
1919
<key>CFBundleSignature</key>
2020
<string>????</string>
2121
<key>CFBundleVersion</key>

SidebarOverlay/SidebarOverlay/SOContainerViewController.swift

Lines changed: 42 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -9,35 +9,22 @@
99
import UIKit
1010

1111

12-
public extension UIViewController {
13-
14-
///
15-
/// Use this computed property to access the container view controller from any view controller.
16-
///
17-
/// - returns: An instance of `SOContainerViewController` that holds current view controller
18-
/// or `nil` if there is not container view controller.
19-
var so_containerViewController: SOContainerViewController? {
20-
if self is SOContainerViewController {
21-
return self as? SOContainerViewController
22-
}
23-
if let parentVC = self.parentViewController {
24-
return parentVC.so_containerViewController
25-
}
26-
return nil
27-
}
28-
29-
}
30-
31-
3212
public class SOContainerViewController: UIViewController, UIGestureRecognizerDelegate {
3313

34-
let LeftViewControllerRightIndent: CGFloat = 56.0
35-
let LeftViewControllerOpenedLeftOffset: CGFloat = 0.0
36-
let SideViewControllerOpenAnimationDuration: NSTimeInterval = 0.24
37-
38-
var _topViewController: UIViewController?
39-
var _leftViewController: UIViewController?
40-
14+
/**
15+
A view controller that is currently presented to user.
16+
17+
Assign this property to any view controller, that should be presented on the top of your application.
18+
19+
In most cases you have to set this property when user selects an item in sidebar menu:
20+
21+
```swift
22+
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
23+
let vc = self.storyboard!.instantiateViewControllerWithIdentifier("newsScreen")
24+
self.so_containerViewController!.topViewController = vc
25+
}
26+
```
27+
*/
4128
public var topViewController: UIViewController? {
4229
get {
4330
return _topViewController
@@ -61,6 +48,13 @@ public class SOContainerViewController: UIViewController, UIGestureRecognizerDel
6148
}
6249
}
6350

51+
/**
52+
A view controller that represents the sidebar menu.
53+
54+
A view controller, that is assigned to this property, is hidden under the left edge of the screen. When user makes a left-to-right swipe gesture, it follows the finger and becomes visible.
55+
56+
Usually you have to set it only once, when you prepare an instance of `SOContainerViewController` to be presented.
57+
*/
6458
public var leftViewController: UIViewController? {
6559
get {
6660
return _leftViewController
@@ -113,7 +107,27 @@ public class SOContainerViewController: UIViewController, UIGestureRecognizerDel
113107
}
114108
}
115109

116-
public func moveMenu(panGesture: UIPanGestureRecognizer) {
110+
//
111+
// MARK: Gesture recognizer delegate
112+
113+
public func gestureRecognizerShouldBegin(gestureRecognizer: UIGestureRecognizer) -> Bool {
114+
let panGestureRecognizer = gestureRecognizer as! UIPanGestureRecognizer
115+
let translation = panGestureRecognizer.translationInView(self.view)
116+
return self.vectorIsMoreHorizontal(translation)
117+
}
118+
119+
//
120+
// MARK: Internal usage
121+
122+
let LeftViewControllerRightIndent: CGFloat = 56.0
123+
let LeftViewControllerOpenedLeftOffset: CGFloat = 0.0
124+
let SideViewControllerOpenAnimationDuration: NSTimeInterval = 0.24
125+
126+
var _topViewController: UIViewController?
127+
var _leftViewController: UIViewController?
128+
129+
130+
func moveMenu(panGesture: UIPanGestureRecognizer) {
117131
panGesture.view?.layer.removeAllAnimations()
118132

119133
let translatedPoint = panGesture.translationInView(self.view)
@@ -132,15 +146,6 @@ public class SOContainerViewController: UIViewController, UIGestureRecognizerDel
132146
}
133147
}
134148

135-
public func gestureRecognizerShouldBegin(gestureRecognizer: UIGestureRecognizer) -> Bool {
136-
let panGestureRecognizer = gestureRecognizer as! UIPanGestureRecognizer
137-
let translation = panGestureRecognizer.translationInView(self.view)
138-
return self.vectorIsMoreHorizontal(translation)
139-
}
140-
141-
//
142-
// MARK: Internal usage
143-
144149
func brindLeftViewToFront() {
145150
if let vc = self.leftViewController {
146151
self.view.bringSubviewToFront(vc.view)
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
//
2+
// UIViewController.swift
3+
// SidebarOverlay
4+
//
5+
// Created by Alex Krzyżanowski on 31.01.16.
6+
// Copyright © 2016 Alex Krzyżanowski. All rights reserved.
7+
//
8+
9+
import UIKit
10+
11+
12+
/**
13+
The `UIViewController` class is extended to be compatible with `SidebarOverlay`.
14+
*/
15+
public extension UIViewController {
16+
17+
/**
18+
Use this computed property to access the container view controller from any view controller.
19+
20+
- returns: An instance of `SOContainerViewController` that holds current view controller or `nil` if there is no container view controller.
21+
*/
22+
var so_containerViewController: SOContainerViewController? {
23+
if self is SOContainerViewController {
24+
return self as? SOContainerViewController
25+
}
26+
if let parentVC = self.parentViewController {
27+
return parentVC.so_containerViewController
28+
}
29+
return nil
30+
}
31+
32+
}

0 commit comments

Comments
 (0)