Commit 5c193224 by Daniel Dahan

updated mainViewController references to rootViewController

parent 30004d7d
......@@ -39,14 +39,14 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
let bottomNavigationController: BottomNavigationController = BottomNavigationController()
bottomNavigationController.viewControllers = [AppMenuViewController(mainViewController: AppNavigationController(rootViewController: RecipesViewController())), VideoViewController(), PhotoViewController()]
bottomNavigationController.viewControllers = [AppMenuViewController(rootViewController: AppNavigationController(rootViewController: RecipesViewController())), VideoViewController(), PhotoViewController()]
bottomNavigationController.selectedIndex = 0
bottomNavigationController.tabBar.tintColor = MaterialColor.lightBlue.base
bottomNavigationController.tabBar.backgroundColor = MaterialColor.grey.darken4
// Override point for customization after application launch.
window = UIWindow(frame: UIScreen.mainScreen().bounds)
window!.rootViewController = SideNavigationController(mainViewController: bottomNavigationController, leftViewController: AppLeftViewController(), rightViewController: AppRightViewController())
window!.rootViewController = SideNavigationController(rootViewController: bottomNavigationController, leftViewController: AppLeftViewController(), rightViewController: AppRightViewController())
window!.makeKeyAndVisible()
return true
}
......
......@@ -34,7 +34,11 @@ import Material
class AppNavigationController: NavigationController {
override func viewDidLoad() {
super.viewDidLoad()
prepareNavigationBar()
}
/// Prepares the navigationBar
private func prepareNavigationBar() {
navigationBar.statusBarStyle = .LightContent
navigationBar.tintColor = MaterialColor.white
navigationBar.backgroundColor = MaterialColor.blue.base
......
......@@ -75,7 +75,7 @@ class RecipesViewController: UIViewController {
// Show the menuView.
menuViewController?.menuView.animate(MaterialAnimation.animationGroup([
MaterialAnimation.rotate(rotation: 3),
MaterialAnimation.translateY(0)
MaterialAnimation.translateY(0 - tabBarController!.tabBar.frame.height)
]))
}
......@@ -87,7 +87,7 @@ class RecipesViewController: UIViewController {
// Hide the menuView.
menuViewController?.menuView.animate(MaterialAnimation.animationGroup([
MaterialAnimation.rotate(rotation: 3),
MaterialAnimation.translateY(150)
MaterialAnimation.translateY(150 + tabBarController!.tabBar.frame.height)
]))
}
......@@ -103,7 +103,7 @@ class RecipesViewController: UIViewController {
recommended.append(dataSourceItems[3])
recommended.append(dataSourceItems[5])
let vc: AppSearchBarController = AppSearchBarController(mainViewController: RecommendationViewController(dataSourceItems: recommended))
let vc: AppSearchBarController = AppSearchBarController(rootViewController: RecommendationViewController(dataSourceItems: recommended))
vc.modalTransitionStyle = .CrossDissolve
navigationController?.presentViewController(vc, animated: true, completion: nil)
}
......
......@@ -39,7 +39,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
// Override point for customization after application launch.
window = UIWindow(frame: UIScreen.mainScreen().bounds)
window!.rootViewController = AppMenuViewController(mainViewController: YellowViewController())
window!.rootViewController = AppMenuViewController(rootViewController: YellowViewController())
window!.makeKeyAndVisible()
return true
}
......
......@@ -49,46 +49,46 @@ class AppMenuViewController: MenuViewController {
prepareMenuView()
}
/// Loads the BlueViewController into the menuViewControllers mainViewController.
/// Loads the BlueViewController into the menuViewControllers rootViewController.
func handleBlueButton() {
if mainViewController is BlueViewController {
if rootViewController is BlueViewController {
return
}
closeMenu { [weak self] in
self?.transitionFromMainViewController(BlueViewController(), options: [.TransitionCrossDissolve])
self?.transitionFromRootViewController(BlueViewController(), options: [.TransitionCrossDissolve])
}
}
/// Loads the GreenViewController into the menuViewControllers mainViewController.
/// Loads the GreenViewController into the menuViewControllers rootViewController.
func handleGreenButton() {
if mainViewController is GreenViewController {
if rootViewController is GreenViewController {
return
}
closeMenu { [weak self] in
self?.transitionFromMainViewController(GreenViewController(), options: [.TransitionCrossDissolve])
self?.transitionFromRootViewController(GreenViewController(), options: [.TransitionCrossDissolve])
}
}
/// Loads the YellowViewController into the menuViewControllers mainViewController.
/// Loads the YellowViewController into the menuViewControllers rootViewController.
func handleYellowButton() {
// if (mainViewController as? ToolbarController)?.mainViewController is YellowViewController {
// if (rootViewController as? ToolbarController)?.rootViewController is YellowViewController {
// return
// }
closeMenu { [weak self] in
self?.transitionFromMainViewController(YellowViewController(), options: [.TransitionCrossDissolve])
self?.transitionFromRootViewController(YellowViewController(), options: [.TransitionCrossDissolve])
}
}
/// Handle the menuView touch event.
func handleMenu() {
if menuView.menu.opened {
menuViewController?.mainViewController.view.alpha = 1
menuViewController?.rootViewController.view.alpha = 1
closeMenu()
} else {
menuViewController?.mainViewController.view.alpha = 0.5
menuViewController?.rootViewController.view.alpha = 0.5
openMenu()
}
}
......
......@@ -39,7 +39,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
// Override point for customization after application launch.
window = UIWindow(frame: UIScreen.mainScreen().bounds)
window!.rootViewController = AppSearchBarController(mainViewController: YellowViewController())
window!.rootViewController = AppSearchBarController(rootViewController: YellowViewController())
window!.makeKeyAndVisible()
return true
}
......
......@@ -43,28 +43,28 @@ class AppSearchBarController: SearchBarController {
prepareSearchBar()
}
/// Loads the BlueViewController into the searchBarControllers mainViewController.
/// Loads the BlueViewController into the searchBarControllers rootViewController.
func handleBlueButton() {
if mainViewController is BlueViewController {
if rootViewController is BlueViewController {
return
}
transitionFromMainViewController(BlueViewController(), options: [.TransitionCrossDissolve])
transitionFromRootViewController(BlueViewController(), options: [.TransitionCrossDissolve])
}
/// Loads the GreenViewController into the searchBarControllers mainViewController.
/// Loads the GreenViewController into the searchBarControllers rootViewController.
func handleGreenButton() {
if mainViewController is GreenViewController {
if rootViewController is GreenViewController {
return
}
transitionFromMainViewController(GreenViewController(), options: [.TransitionCrossDissolve])
transitionFromRootViewController(GreenViewController(), options: [.TransitionCrossDissolve])
}
/// Loads the YellowViewController into the searchBarControllers mainViewController.
/// Loads the YellowViewController into the searchBarControllers rootViewController.
func handleYellowButton() {
if (mainViewController as? ToolbarController)?.mainViewController is YellowViewController {
if (rootViewController as? ToolbarController)?.rootViewController is YellowViewController {
return
}
transitionFromMainViewController(YellowViewController(), options: [.TransitionCrossDissolve])
transitionFromRootViewController(YellowViewController(), options: [.TransitionCrossDissolve])
searchBar.textField.resignFirstResponder()
}
......@@ -128,12 +128,12 @@ class AppSearchBarController: SearchBarController {
extension AppSearchBarController: TextFieldDelegate {
func textFieldDidBeginEditing(textField: UITextField) {
mainViewController.view.alpha = 0.5
mainViewController.view.userInteractionEnabled = false
rootViewController.view.alpha = 0.5
rootViewController.view.userInteractionEnabled = false
}
func textFieldDidEndEditing(textField: UITextField) {
mainViewController.view.alpha = 1
mainViewController.view.userInteractionEnabled = true
rootViewController.view.alpha = 1
rootViewController.view.userInteractionEnabled = true
}
}
......@@ -39,7 +39,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
// Override point for customization after application launch.
window = UIWindow(frame: UIScreen.mainScreen().bounds)
window!.rootViewController = SideNavigationController(mainViewController: YellowViewController(), leftViewController: GreenViewController(), rightViewController: BlueViewController())
window!.rootViewController = SideNavigationController(rootViewController: YellowViewController(), leftViewController: GreenViewController(), rightViewController: BlueViewController())
window!.makeKeyAndVisible()
return true
}
......
......@@ -39,7 +39,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
// Override point for customization after application launch.
window = UIWindow(frame: UIScreen.mainScreen().bounds)
window!.rootViewController = AppToolbarController(mainViewController: YellowViewController())
window!.rootViewController = AppToolbarController(rootViewController: YellowViewController())
window!.makeKeyAndVisible()
return true
}
......
......@@ -61,7 +61,7 @@ class AppToolbarController: ToolbarController {
/// Toggle SideNavigationController left UIViewController.
internal func handleMenuButton() {
transitionFromMainViewController(GreenViewController(), options: [.TransitionCrossDissolve])
transitionFromRootViewController(GreenViewController(), options: [.TransitionCrossDissolve])
}
/// Toggle SideNavigationController right UIViewController.
......@@ -125,7 +125,7 @@ class AppToolbarController: ToolbarController {
extension AppToolbarController: MaterialSwitchDelegate {
func materialSwitchStateChanged(control: MaterialSwitch) {
transitionFromMainViewController(YellowViewController(), options: [.TransitionCrossDissolve])
transitionFromRootViewController(YellowViewController(), options: [.TransitionCrossDissolve])
}
}
......@@ -40,12 +40,12 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
// Get view controllers from storyboard
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let mainViewController = storyboard.instantiateViewControllerWithIdentifier("MainViewController") as! MainViewController
let rootViewController = storyboard.instantiateViewControllerWithIdentifier("RootViewController") as! RootViewController
let sideViewController = storyboard.instantiateViewControllerWithIdentifier("SideViewController") as! SideViewController
// Configure the window with the SideNavigationController as the root view controller
window = UIWindow(frame: UIScreen.mainScreen().bounds)
window?.rootViewController = SideNavigationController(mainViewController: mainViewController, leftViewController: sideViewController)
window?.rootViewController = SideNavigationController(rootViewController: rootViewController, leftViewController: sideViewController)
window?.makeKeyAndVisible()
return true
}
......
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="9060" systemVersion="15B42" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES">
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="10116" systemVersion="15D21" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES">
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="9051"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="10085"/>
</dependencies>
<scenes>
<!--Main View Controller-->
<!--Root View Controller-->
<scene sceneID="S32-pp-djU">
<objects>
<viewController storyboardIdentifier="MainViewController" useStoryboardIdentifierAsRestorationIdentifier="YES" id="huh-WT-4zU" customClass="MainViewController" customModule="SideNavigationViewController" customModuleProvider="target" sceneMemberID="viewController">
<viewController storyboardIdentifier="RootViewController" useStoryboardIdentifierAsRestorationIdentifier="YES" id="huh-WT-4zU" customClass="RootViewController" customModule="SideNavigationViewController" customModuleProvider="target" sceneMemberID="viewController">
<layoutGuides>
<viewControllerLayoutGuide type="top" id="778-lO-FMj"/>
<viewControllerLayoutGuide type="bottom" id="hvu-kv-aLI"/>
......@@ -16,7 +15,6 @@
<view key="view" contentMode="scaleToFill" id="I6q-Is-0pO">
<rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<animations/>
<color key="backgroundColor" red="0.3590823447" green="0.30467909450000003" blue="0.81552683250000002" alpha="1" colorSpace="calibratedRGB"/>
</view>
</viewController>
......@@ -35,7 +33,6 @@
<view key="view" contentMode="scaleToFill" id="8bC-Xf-vdC">
<rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<animations/>
<color key="backgroundColor" red="0.93725490199999995" green="0.93725490199999995" blue="0.95686274510000002" alpha="1" colorSpace="calibratedRGB"/>
</view>
</viewController>
......
......@@ -31,7 +31,7 @@
import UIKit
import Material
class MainViewController: UIViewController {
class RootViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
......
......@@ -112,14 +112,19 @@ public class BottomNavigationController : UITabBarController, UITabBarController
public func prepareView() {
view.clipsToBounds = true
delegate = self
tabBar.depth = .Depth1
tabBar.backgroundColor = MaterialColor.white
tabBar.shadowImage = UIImage.imageWithColor(MaterialColor.clear, size: CGSizeMake(1, 1))
tabBar.backgroundImage = UIImage()
prepareTabBar()
}
/// Handles transitions when tabBarItems are pressed.
public func tabBarController(tabBarController: UITabBarController, animationControllerForTransitionFromViewController fromVC: UIViewController, toViewController toVC: UIViewController) -> UIViewControllerAnimatedTransitioning? {
return .Fade == transitionAnimation ? BottomNavigationFadeAnimatedTransitioning() : nil
}
/// Prepares the tabBar.
private func prepareTabBar() {
tabBar.depth = .Depth1
tabBar.backgroundColor = MaterialColor.white
tabBar.shadowImage = UIImage.imageWithColor(MaterialColor.clear, size: CGSizeMake(1, 1))
tabBar.backgroundImage = UIImage()
}
}
......@@ -15,7 +15,7 @@
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>1.37.3</string>
<string>1.38.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
......
......@@ -55,32 +55,32 @@ public class MenuViewController : UIViewController {
/**
A Boolean property used to enable and disable interactivity
with the mainViewController.
with the rootViewController.
*/
@IBInspectable public var userInteractionEnabled: Bool {
get {
return mainViewController.view.userInteractionEnabled
return rootViewController.view.userInteractionEnabled
}
set(value) {
mainViewController.view.userInteractionEnabled = value
rootViewController.view.userInteractionEnabled = value
}
}
/**
A UIViewController property that references the active
main UIViewController. To swap the mainViewController, it
is recommended to use the transitionFromMainViewController
main UIViewController. To swap the rootViewController, it
is recommended to use the transitionFromRootViewController
helper method.
*/
public private(set) var mainViewController: UIViewController!
public private(set) var rootViewController: UIViewController!
/**
An initializer for the MenuViewController.
- Parameter mainViewController: The main UIViewController.
- Parameter rootViewController: The main UIViewController.
*/
public convenience init(mainViewController: UIViewController) {
public convenience init(rootViewController: UIViewController) {
self.init()
self.mainViewController = mainViewController
self.rootViewController = rootViewController
prepareView()
}
......@@ -90,35 +90,37 @@ public class MenuViewController : UIViewController {
}
/**
A method to swap mainViewController objects.
A method to swap rootViewController objects.
- Parameter toViewController: The UIViewController to swap
with the active mainViewController.
with the active rootViewController.
- Parameter duration: A NSTimeInterval that sets the
animation duration of the transition.
- Parameter options: UIViewAnimationOptions thst are used
when animating the transition from the active mainViewController
when animating the transition from the active rootViewController
to the toViewController.
- Parameter animations: An animation block that is executed during
the transition from the active mainViewController
the transition from the active rootViewController
to the toViewController.
- Parameter completion: A completion block that is execited after
the transition animation from the active mainViewController
the transition animation from the active rootViewController
to the toViewController has completed.
*/
public func transitionFromMainViewController(toViewController: UIViewController, duration: NSTimeInterval = 0.5, options: UIViewAnimationOptions = [], animations: (() -> Void)? = nil, completion: ((Bool) -> Void)? = nil) {
mainViewController.willMoveToParentViewController(nil)
public func transitionFromRootViewController(toViewController: UIViewController, duration: NSTimeInterval = 0.5, options: UIViewAnimationOptions = [], animations: (() -> Void)? = nil, completion: ((Bool) -> Void)? = nil) {
rootViewController.willMoveToParentViewController(nil)
addChildViewController(toViewController)
toViewController.view.frame = mainViewController.view.frame
transitionFromViewController(mainViewController,
toViewController.view.frame = rootViewController.view.frame
transitionFromViewController(rootViewController,
toViewController: toViewController,
duration: duration,
options: options,
animations: animations,
completion: { [unowned self] (result: Bool) in
toViewController.didMoveToParentViewController(self)
self.mainViewController.removeFromParentViewController()
self.mainViewController = toViewController
self.view.sendSubviewToBack(self.mainViewController.view)
self.rootViewController.removeFromParentViewController()
self.rootViewController = toViewController
self.rootViewController.view.clipsToBounds = true
self.rootViewController.view.autoresizingMask = .FlexibleWidth
self.view.sendSubviewToBack(self.rootViewController.view)
completion?(result)
})
}
......@@ -131,7 +133,7 @@ public class MenuViewController : UIViewController {
public func openMenu(completion: (() -> Void)? = nil) {
if true == userInteractionEnabled {
userInteractionEnabled = false
mainViewController.view.alpha = 0.5
rootViewController.view.alpha = 0.5
menuView.open(completion)
}
}
......@@ -143,7 +145,7 @@ public class MenuViewController : UIViewController {
*/
public func closeMenu(completion: (() -> Void)? = nil) {
if false == userInteractionEnabled {
mainViewController.view.alpha = 1
rootViewController.view.alpha = 1
menuView.close({ [weak self] in
self?.userInteractionEnabled = true
completion?()
......@@ -153,10 +155,9 @@ public class MenuViewController : UIViewController {
/// A method that generally prepares the MenuViewController.
private func prepareView() {
edgesForExtendedLayout = .None
view.clipsToBounds = true
prepareMenuView()
prepareMainViewController()
prepareRootViewController()
}
/// Prepares the MenuView.
......@@ -165,9 +166,11 @@ public class MenuViewController : UIViewController {
view.addSubview(menuView)
}
/// A method that prepares the mainViewController.
private func prepareMainViewController() {
prepareViewControllerWithinContainer(mainViewController, container: view)
/// A method that prepares the rootViewController.
private func prepareRootViewController() {
rootViewController.view.clipsToBounds = true
rootViewController.view.autoresizingMask = .FlexibleWidth
prepareViewControllerWithinContainer(rootViewController, container: view)
}
/**
......@@ -181,13 +184,14 @@ public class MenuViewController : UIViewController {
private func prepareViewControllerWithinContainer(viewController: UIViewController?, container: UIView) {
if let v: UIViewController = viewController {
addChildViewController(v)
container.insertSubview(v.view, atIndex: 0)
container.addSubview(v.view)
container.sendSubviewToBack(v.view)
v.didMoveToParentViewController(self)
}
}
/// Layout subviews.
private func layoutSubviews() {
mainViewController.view.frame = view.bounds
rootViewController.view.frame = view.bounds
}
}
......@@ -60,8 +60,7 @@ public class NavigationController : UINavigationController, UIGestureRecognizerD
public override func viewDidLoad() {
super.viewDidLoad()
edgesForExtendedLayout = .None
view.clipsToBounds = true
prepareView()
// This ensures the panning gesture is available when going back between views.
if let v: UIGestureRecognizer = interactivePopGestureRecognizer {
......@@ -128,4 +127,9 @@ public class NavigationController : UINavigationController, UIGestureRecognizerD
internal func handleBackButton() {
popViewControllerAnimated(true)
}
/// Prepares the view.
private func prepareView() {
view.clipsToBounds = true
}
}
......@@ -43,65 +43,67 @@ public class StatusBarViewController : UIViewController {
/**
A Boolean property used to enable and disable interactivity
with the mainViewController.
with the rootViewController.
*/
@IBInspectable public var userInteractionEnabled: Bool {
get {
return mainViewController.view.userInteractionEnabled
return rootViewController.view.userInteractionEnabled
}
set(value) {
mainViewController.view.userInteractionEnabled = value
rootViewController.view.userInteractionEnabled = value
}
}
/**
A UIViewController property that references the active
main UIViewController. To swap the mainViewController, it
is recommended to use the transitionFromMainViewController
main UIViewController. To swap the rootViewController, it
is recommended to use the transitionFromRootViewController
helper method.
*/
public private(set) var mainViewController: UIViewController!
public private(set) var rootViewController: UIViewController!
/**
An initializer for the StatusBarViewController.
- Parameter mainViewController: The main UIViewController.
- Parameter rootViewController: The main UIViewController.
*/
public convenience init(mainViewController: UIViewController) {
public convenience init(rootViewController: UIViewController) {
self.init()
self.mainViewController = mainViewController
self.rootViewController = rootViewController
prepareView()
}
/**
A method to swap mainViewController objects.
A method to swap rootViewController objects.
- Parameter toViewController: The UIViewController to swap
with the active mainViewController.
with the active rootViewController.
- Parameter duration: A NSTimeInterval that sets the
animation duration of the transition.
- Parameter options: UIViewAnimationOptions thst are used
when animating the transition from the active mainViewController
when animating the transition from the active rootViewController
to the toViewController.
- Parameter animations: An animation block that is executed during
the transition from the active mainViewController
the transition from the active rootViewController
to the toViewController.
- Parameter completion: A completion block that is execited after
the transition animation from the active mainViewController
the transition animation from the active rootViewController
to the toViewController has completed.
*/
public func transitionFromMainViewController(toViewController: UIViewController, duration: NSTimeInterval = 0.5, options: UIViewAnimationOptions = [], animations: (() -> Void)? = nil, completion: ((Bool) -> Void)? = nil) {
mainViewController.willMoveToParentViewController(nil)
public func transitionFromRootViewController(toViewController: UIViewController, duration: NSTimeInterval = 0.5, options: UIViewAnimationOptions = [], animations: (() -> Void)? = nil, completion: ((Bool) -> Void)? = nil) {
rootViewController.willMoveToParentViewController(nil)
addChildViewController(toViewController)
toViewController.view.frame = mainViewController.view.frame
transitionFromViewController(mainViewController,
toViewController.view.frame = rootViewController.view.frame
transitionFromViewController(rootViewController,
toViewController: toViewController,
duration: duration,
options: options,
animations: animations,
completion: { [unowned self] (result: Bool) in
toViewController.didMoveToParentViewController(self)
self.mainViewController.removeFromParentViewController()
self.mainViewController = toViewController
self.view.sendSubviewToBack(self.mainViewController.view)
self.rootViewController.removeFromParentViewController()
self.rootViewController = toViewController
self.rootViewController.view.clipsToBounds = true
self.rootViewController.view.autoresizingMask = .FlexibleWidth
self.view.sendSubviewToBack(self.rootViewController.view)
completion?(result)
})
}
......@@ -114,9 +116,8 @@ public class StatusBarViewController : UIViewController {
when subclassing.
*/
public func prepareView() {
edgesForExtendedLayout = .None
view.clipsToBounds = true
prepareMainViewController()
prepareRootViewController()
}
public override func viewWillLayoutSubviews() {
......@@ -130,18 +131,19 @@ public class StatusBarViewController : UIViewController {
let q: CGFloat = UIApplication.sharedApplication().statusBarFrame.size.height
if .iPhone == MaterialDevice.type && MaterialDevice.landscape {
mainViewController.view.frame.origin.y = heightForLandscapeOrientation
mainViewController.view.frame.size.height = h - (heightForStatusBar >= q ? heightForLandscapeOrientation : q - heightForStatusBar - heightForLandscapeOrientation)
rootViewController.view.frame.origin.y = heightForLandscapeOrientation
rootViewController.view.frame.size.height = h - (heightForStatusBar >= q ? heightForLandscapeOrientation : q - heightForStatusBar - heightForLandscapeOrientation)
} else {
mainViewController.view.frame.origin.y = heightForPortraitOrientation
mainViewController.view.frame.size.height = h - (heightForStatusBar >= q ? heightForPortraitOrientation : q - heightForStatusBar - heightForPortraitOrientation)
rootViewController.view.frame.origin.y = heightForPortraitOrientation
rootViewController.view.frame.size.height = h - (heightForStatusBar >= q ? heightForPortraitOrientation : q - heightForStatusBar - heightForPortraitOrientation)
}
}
/// A method that prepares the mainViewController.
private func prepareMainViewController() {
mainViewController.view.autoresizingMask = .FlexibleWidth
prepareViewControllerWithinContainer(mainViewController, container: view)
/// A method that prepares the rootViewController.
private func prepareRootViewController() {
rootViewController.view.clipsToBounds = true
rootViewController.view.autoresizingMask = .FlexibleWidth
prepareViewControllerWithinContainer(rootViewController, container: view)
}
/**
......@@ -155,7 +157,8 @@ public class StatusBarViewController : UIViewController {
private func prepareViewControllerWithinContainer(viewController: UIViewController?, container: UIView) {
if let v: UIViewController = viewController {
addChildViewController(v)
container.insertSubview(v.view, atIndex: 0)
container.addSubview(v.view)
container.sendSubviewToBack(v.view)
v.didMoveToParentViewController(self)
}
}
......
......@@ -119,7 +119,7 @@ public class ToolbarController : StatusBarViewController {
animations: { [unowned self] in
v.view.center.y = 2 * self.view.bounds.height
self.toolbar.alpha = 1
self.mainViewController.view.alpha = 1
self.rootViewController.view.alpha = 1
}) { [unowned self] _ in
v.willMoveToParentViewController(nil)
v.view.removeFromSuperview()
......@@ -157,7 +157,7 @@ public class ToolbarController : StatusBarViewController {
animations: { [unowned self] in
v.view.center.y = self.view.bounds.height / 2
self.toolbar.alpha = 0.5
self.mainViewController.view.alpha = 0.5
self.rootViewController.view.alpha = 0.5
}) { [unowned self] _ in
v.view.layer.shouldRasterize = false
self.view.layer.shouldRasterize = false
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment