diff --git a/Delta/Base.lproj/Main.storyboard b/Delta/Base.lproj/Main.storyboard
index f5f1dc9..b69123d 100644
--- a/Delta/Base.lproj/Main.storyboard
+++ b/Delta/Base.lproj/Main.storyboard
@@ -46,6 +46,9 @@
+
+
+
diff --git a/Delta/Game Selection/GamesViewController.swift b/Delta/Game Selection/GamesViewController.swift
index 70767d2..40dd76e 100644
--- a/Delta/Game Selection/GamesViewController.swift
+++ b/Delta/Game Selection/GamesViewController.swift
@@ -47,6 +47,7 @@ class GamesViewController: UIViewController
private let fetchedResultsController: NSFetchedResultsController
private var searchController: RSTSearchController?
+ private lazy var importController: ImportController = self.makeImportController()
private var syncingToastView: RSTToastView? {
didSet {
@@ -58,6 +59,8 @@ class GamesViewController: UIViewController
}
private var syncingProgressObservation: NSKeyValueObservation?
+ @IBOutlet private var importButton: UIBarButtonItem!
+
override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: Bundle?) {
fatalError("initWithNibName: not implemented")
}
@@ -132,6 +135,8 @@ extension GamesViewController
}
}
+ self.importController.barButtonItem = self.importButton
+
self.prepareSearchController()
self.updateTheme()
@@ -358,8 +363,8 @@ private extension GamesViewController
/// Importing
extension GamesViewController: ImportControllerDelegate
{
- @IBAction private func importFiles()
- {
+ private func makeImportController() -> ImportController
+ {
var documentTypes = Set(System.registeredSystems.map { $0.gameType.rawValue })
documentTypes.insert(kUTTypeZipArchive as String)
documentTypes.insert("com.rileytestut.delta.skin")
@@ -379,7 +384,13 @@ extension GamesViewController: ImportControllerDelegate
let importController = ImportController(documentTypes: documentTypes)
importController.delegate = self
importController.importOptions = [itunesImportOption]
- self.present(importController, animated: true, completion: nil)
+
+ return importController
+ }
+
+ @IBAction private func importFiles()
+ {
+ self.present(self.importController, animated: true, completion: nil)
}
func importController(_ importController: ImportController, didImportItemsAt urls: Set, errors: [Error])
diff --git a/Delta/Importing/ImportController.swift b/Delta/Importing/ImportController.swift
index e1cc5a9..2370752 100644
--- a/Delta/Importing/ImportController.swift
+++ b/Delta/Importing/ImportController.swift
@@ -37,6 +37,8 @@ class ImportController: NSObject
var delegate: ImportControllerDelegate?
var importOptions: [ImportOption]?
+ var barButtonItem: UIBarButtonItem?
+
private weak var presentingViewController: UIViewController?
// Store presentedViewController separately, since when we dismiss we don't know if it has already been dismissed.
@@ -82,6 +84,8 @@ class ImportController: NSObject
}
alertController.addAction(filesAction)
+ alertController.popoverPresentationController?.barButtonItem = self.barButtonItem
+
self.presentedViewController = alertController
self.presentingViewController?.present(alertController, animated: true, completion: nil)
}
@@ -198,7 +202,7 @@ private var ImportControllerKey: UInt8 = 0
extension UIViewController
{
- fileprivate(set) var importController: ImportController?
+ fileprivate var importController: ImportController?
{
set
{