Skip to content

Commit

Permalink
Fixed working with UINavigationController
Browse files Browse the repository at this point in the history
  • Loading branch information
Abdurahim Jauzee committed Apr 17, 2017
1 parent 5d3663b commit ac4f1ba
Show file tree
Hide file tree
Showing 6 changed files with 174 additions and 3 deletions.
2 changes: 1 addition & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,5 @@ osx_image: xcode8
language: objective-c

xcode_project: ElongationPreview.xcodeproj
xcode_scheme: ElongationPreview
xcode_scheme: ElongationPreviewDemo
xcode_sdk: iphonesimulator
2 changes: 1 addition & 1 deletion ElongationPreview.podspec
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Pod::Spec.new do |s|
s.name = 'ElongationPreview'
s.version = '1.0.2'
s.version = '1.0.4'
s.summary = 'ElongationPreview is an elegant push-pop style view controller.'
s.license = 'MIT'
s.homepage = 'https://github.com/Ramotion/elongation-preview'
Expand Down
111 changes: 111 additions & 0 deletions ElongationPreview.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
9D69D13B1E4EF31C00D38C59 /* UIFont.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D69D13A1E4EF31C00D38C59 /* UIFont.swift */; };
9D69D13D1E4F339300D38C59 /* ElongationTransition.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D69D13C1E4F339300D38C59 /* ElongationTransition.swift */; };
9D69D13F1E4F344B00D38C59 /* ElongationDetailViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D69D13E1E4F344B00D38C59 /* ElongationDetailViewController.swift */; };
9D873CEB1E7C2A1200826500 /* ElongationPreviewUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D873CEA1E7C2A1200826500 /* ElongationPreviewUITests.swift */; };
9D8937311E539DDD00FDC29D /* DetailViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D8937301E539DDD00FDC29D /* DetailViewController.swift */; };
9DC8E8841E4B3CAD00C04F79 /* UICollectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9DC8E8821E4B3CAD00C04F79 /* UICollectionView.swift */; };
9DC8E8851E4B3CAD00C04F79 /* UITableView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9DC8E8831E4B3CAD00C04F79 /* UITableView.swift */; };
Expand All @@ -40,6 +41,13 @@
/* End PBXBuildFile section */

/* Begin PBXContainerItemProxy section */
9D873CED1E7C2A1200826500 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 9DE4FABA1E4B1A02008502A3 /* Project object */;
proxyType = 1;
remoteGlobalIDString = 9DE4FAD11E4B1A15008502A3;
remoteInfo = ElongationPreviewDemo;
};
9DC8E8971E4B45F300C04F79 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 9DE4FABA1E4B1A02008502A3 /* Project object */;
Expand Down Expand Up @@ -76,6 +84,9 @@
9D69D13A1E4EF31C00D38C59 /* UIFont.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UIFont.swift; sourceTree = "<group>"; };
9D69D13C1E4F339300D38C59 /* ElongationTransition.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ElongationTransition.swift; sourceTree = "<group>"; };
9D69D13E1E4F344B00D38C59 /* ElongationDetailViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ElongationDetailViewController.swift; sourceTree = "<group>"; };
9D873CE81E7C2A1200826500 /* ElongationPreviewUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ElongationPreviewUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
9D873CEA1E7C2A1200826500 /* ElongationPreviewUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ElongationPreviewUITests.swift; sourceTree = "<group>"; };
9D873CEC1E7C2A1200826500 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
9D8937301E539DDD00FDC29D /* DetailViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DetailViewController.swift; sourceTree = "<group>"; };
9DC8E8821E4B3CAD00C04F79 /* UICollectionView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UICollectionView.swift; sourceTree = "<group>"; };
9DC8E8831E4B3CAD00C04F79 /* UITableView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UITableView.swift; sourceTree = "<group>"; };
Expand All @@ -99,6 +110,13 @@
/* End PBXFileReference section */

/* Begin PBXFrameworksBuildPhase section */
9D873CE51E7C2A1200826500 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
9DE4FABF1E4B1A02008502A3 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
Expand Down Expand Up @@ -160,6 +178,15 @@
path = Extensions;
sourceTree = "<group>";
};
9D873CE91E7C2A1200826500 /* ElongationPreviewUITests */ = {
isa = PBXGroup;
children = (
9D873CEA1E7C2A1200826500 /* ElongationPreviewUITests.swift */,
9D873CEC1E7C2A1200826500 /* Info.plist */,
);
path = ElongationPreviewUITests;
sourceTree = "<group>";
};
9DC8E8811E4B3CAD00C04F79 /* Extensions */ = {
isa = PBXGroup;
children = (
Expand Down Expand Up @@ -206,6 +233,7 @@
children = (
9DE4FAC51E4B1A02008502A3 /* ElongationPreview */,
9DE4FAD31E4B1A15008502A3 /* ElongationPreviewDemo */,
9D873CE91E7C2A1200826500 /* ElongationPreviewUITests */,
9DE4FAC41E4B1A02008502A3 /* Products */,
);
sourceTree = "<group>";
Expand All @@ -215,6 +243,7 @@
children = (
9DE4FAC31E4B1A02008502A3 /* ElongationPreview.framework */,
9DE4FAD21E4B1A15008502A3 /* ElongationPreviewDemo.app */,
9D873CE81E7C2A1200826500 /* ElongationPreviewUITests.xctest */,
);
name = Products;
sourceTree = "<group>";
Expand Down Expand Up @@ -289,6 +318,24 @@
/* End PBXHeadersBuildPhase section */

/* Begin PBXNativeTarget section */
9D873CE71E7C2A1200826500 /* ElongationPreviewUITests */ = {
isa = PBXNativeTarget;
buildConfigurationList = 9D873CF11E7C2A1200826500 /* Build configuration list for PBXNativeTarget "ElongationPreviewUITests" */;
buildPhases = (
9D873CE41E7C2A1200826500 /* Sources */,
9D873CE51E7C2A1200826500 /* Frameworks */,
9D873CE61E7C2A1200826500 /* Resources */,
);
buildRules = (
);
dependencies = (
9D873CEE1E7C2A1200826500 /* PBXTargetDependency */,
);
name = ElongationPreviewUITests;
productName = ElongationPreviewUITests;
productReference = 9D873CE81E7C2A1200826500 /* ElongationPreviewUITests.xctest */;
productType = "com.apple.product-type.bundle.ui-testing";
};
9DE4FAC21E4B1A02008502A3 /* ElongationPreview */ = {
isa = PBXNativeTarget;
buildConfigurationList = 9DE4FACB1E4B1A02008502A3 /* Build configuration list for PBXNativeTarget "ElongationPreview" */;
Expand Down Expand Up @@ -336,6 +383,12 @@
LastUpgradeCheck = 0820;
ORGANIZATIONNAME = Ramotion;
TargetAttributes = {
9D873CE71E7C2A1200826500 = {
CreatedOnToolsVersion = 8.2.1;
DevelopmentTeam = 2VFCBFYPFW;
ProvisioningStyle = Automatic;
TestTargetID = 9DE4FAD11E4B1A15008502A3;
};
9DE4FAC21E4B1A02008502A3 = {
CreatedOnToolsVersion = 8.2.1;
LastSwiftMigration = 0820;
Expand Down Expand Up @@ -363,11 +416,19 @@
targets = (
9DE4FAC21E4B1A02008502A3 /* ElongationPreview */,
9DE4FAD11E4B1A15008502A3 /* ElongationPreviewDemo */,
9D873CE71E7C2A1200826500 /* ElongationPreviewUITests */,
);
};
/* End PBXProject section */

/* Begin PBXResourcesBuildPhase section */
9D873CE61E7C2A1200826500 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
9DE4FAC11E4B1A02008502A3 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
Expand All @@ -393,6 +454,14 @@
/* End PBXResourcesBuildPhase section */

/* Begin PBXSourcesBuildPhase section */
9D873CE41E7C2A1200826500 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
9D873CEB1E7C2A1200826500 /* ElongationPreviewUITests.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
9DE4FABE1E4B1A02008502A3 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
Expand Down Expand Up @@ -429,6 +498,11 @@
/* End PBXSourcesBuildPhase section */

/* Begin PBXTargetDependency section */
9D873CEE1E7C2A1200826500 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = 9DE4FAD11E4B1A15008502A3 /* ElongationPreviewDemo */;
targetProxy = 9D873CED1E7C2A1200826500 /* PBXContainerItemProxy */;
};
9DC8E8981E4B45F300C04F79 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = 9DE4FAC21E4B1A02008502A3 /* ElongationPreview */;
Expand Down Expand Up @@ -456,6 +530,34 @@
/* End PBXVariantGroup section */

/* Begin XCBuildConfiguration section */
9D873CEF1E7C2A1200826500 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
DEVELOPMENT_TEAM = 2VFCBFYPFW;
INFOPLIST_FILE = ElongationPreviewUITests/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 10.2;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = com.ramotion.ElongationPreviewUITests;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 3.0;
TEST_TARGET_NAME = ElongationPreviewDemo;
};
name = Debug;
};
9D873CF01E7C2A1200826500 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
DEVELOPMENT_TEAM = 2VFCBFYPFW;
INFOPLIST_FILE = ElongationPreviewUITests/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 10.2;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = com.ramotion.ElongationPreviewUITests;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 3.0;
TEST_TARGET_NAME = ElongationPreviewDemo;
};
name = Release;
};
9DE4FAC91E4B1A02008502A3 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
Expand Down Expand Up @@ -633,6 +735,15 @@
/* End XCBuildConfiguration section */

/* Begin XCConfigurationList section */
9D873CF11E7C2A1200826500 /* Build configuration list for PBXNativeTarget "ElongationPreviewUITests" */ = {
isa = XCConfigurationList;
buildConfigurations = (
9D873CEF1E7C2A1200826500 /* Debug */,
9D873CF01E7C2A1200826500 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
9DE4FABD1E4B1A02008502A3 /* Build configuration list for PBXProject "ElongationPreview" */ = {
isa = XCConfigurationList;
buildConfigurations = (
Expand Down
12 changes: 11 additions & 1 deletion ElongationPreview/Source/ElongationTransition.swift
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,17 @@ public class ElongationTransition: NSObject {
}

fileprivate func root(from context: UIViewControllerContextTransitioning) -> ElongationViewController {
return context.viewController(forKey: rootKey) as? ElongationViewController ?? ElongationViewController(nibName: nil, bundle: nil)
let viewController = context.viewController(forKey: rootKey)

if let navi = viewController as? UINavigationController {
for case let elongationViewController as ElongationViewController in navi.viewControllers {
return elongationViewController
}
} else if let elongationViewController = viewController as? ElongationViewController {
return elongationViewController
}

fatalError("Can't get `ElongationViewController` from UINavigationController nor from context's viewController itself.")
}

fileprivate func detail(from context: UIViewControllerContextTransitioning) -> ElongationDetailViewController {
Expand Down
28 changes: 28 additions & 0 deletions ElongationPreviewUITests/ElongationPreviewUITests.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
//
// ElongationPreviewUITests.swift
// ElongationPreviewUITests
//
// Created by Abdurahim Jauzee on 17/03/2017.
// Copyright © 2017 Ramotion. All rights reserved.
//

import XCTest
@testable import ElongationPreviewDemo


class ElongationPreviewUITests: XCTestCase {

var viewController: UITableViewController!
var detailViewController: UITableViewController!

override func setUp() {
super.setUp()
continueAfterFailure = false
XCUIApplication().launch()
}

override func tearDown() {
super.tearDown()
}

}
22 changes: 22 additions & 0 deletions ElongationPreviewUITests/Info.plist
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>$(PRODUCT_NAME)</string>
<key>CFBundlePackageType</key>
<string>BNDL</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleVersion</key>
<string>1</string>
</dict>
</plist>

0 comments on commit ac4f1ba

Please sign in to comment.