diff --git a/MediaEditor.xcodeproj/project.pbxproj b/MediaEditor.xcodeproj/project.pbxproj index 564d7fa..c3beb91 100644 --- a/MediaEditor.xcodeproj/project.pbxproj +++ b/MediaEditor.xcodeproj/project.pbxproj @@ -570,7 +570,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; ONLY_ACTIVE_ARCH = YES; @@ -627,7 +627,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; MTL_ENABLE_DEBUG_INFO = NO; MTL_FAST_MATH = YES; SDKROOT = iphoneos; diff --git a/Sources/MediaEditor.swift b/Sources/MediaEditor.swift index a58cf86..8b74684 100644 --- a/Sources/MediaEditor.swift +++ b/Sources/MediaEditor.swift @@ -73,7 +73,8 @@ open class MediaEditor: UINavigationController { /// public init(_ image: UIImage) { self.images = [0: image] - super.init(rootViewController: hub) + super.init(nibName: nil, bundle: nil) + viewControllers = [hub] setup() } @@ -84,7 +85,8 @@ open class MediaEditor: UINavigationController { /// public init(_ images: [UIImage]) { self.images = images.enumerated().reduce(into: [:]) { $0[$1.offset] = $1.element } - super.init(rootViewController: hub) + super.init(nibName: nil, bundle: nil) + viewControllers = [hub] setup() } @@ -96,7 +98,8 @@ open class MediaEditor: UINavigationController { /// public init(_ asyncImage: AsyncImage) { self.asyncImages.append(asyncImage) - super.init(rootViewController: hub) + super.init(nibName: nil, bundle: nil) + viewControllers = [hub] setup() } @@ -108,7 +111,8 @@ open class MediaEditor: UINavigationController { /// public init(_ asyncImages: [AsyncImage]) { self.asyncImages = asyncImages - super.init(rootViewController: hub) + super.init(nibName: nil, bundle: nil) + viewControllers = [hub] setup() } @@ -116,16 +120,8 @@ open class MediaEditor: UINavigationController { super.init(coder: aDecoder) } - public override func viewDidLoad() { - super.viewDidLoad() - - isEditingPlainUIImages = images.count > 0 - - hub.delegate = self - - modalTransitionStyle = .crossDissolve - modalPresentationStyle = .fullScreen - navigationBar.isHidden = true + public override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: Bundle?) { + super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil) } public override func viewWillDisappear(_ animated: Bool) { @@ -140,12 +136,21 @@ open class MediaEditor: UINavigationController { } private func setup() { + setupModalStyle() setupHub() setupForAsync() presentIfSingleImageAndCapability() } + private func setupModalStyle() { + modalTransitionStyle = .crossDissolve + modalPresentationStyle = .fullScreen + navigationBar.isHidden = true + } + private func setupHub() { + hub.delegate = self + hub.onCancel = { [weak self] in self?.cancel() } @@ -166,6 +171,8 @@ open class MediaEditor: UINavigationController { } private func setupForAsync() { + isEditingPlainUIImages = images.count > 0 + asyncImages.enumerated().forEach { offset, asyncImage in if let thumb = asyncImage.thumb { thumbnailAvailable(thumb, offset: offset) diff --git a/Tests/MediaEditorTests.swift b/Tests/MediaEditorTests.swift index 4dccdc7..57c8198 100644 --- a/Tests/MediaEditorTests.swift +++ b/Tests/MediaEditorTests.swift @@ -214,6 +214,7 @@ class MediaEditorTests: XCTestCase { let thumbImage = UIImage(color: .black) let mediaEditor = MediaEditor(asyncImage) UIApplication.shared.topWindow?.addSubview(mediaEditor.view) + mediaEditor.view.layoutIfNeeded() asyncImage.simulate(fullImageHasBeenDownloaded: fullImage) asyncImage.simulate(thumbHasBeenDownloaded: thumbImage)