mirror of
https://github.com/kiwix/kiwix-apple.git
synced 2025-09-25 21:05:09 -04:00
ControllerRetainer
This commit is contained in:
parent
2d96977377
commit
b772b96037
35
Kiwix-iOS/Controller/ControllerRetainer.swift
Normal file
35
Kiwix-iOS/Controller/ControllerRetainer.swift
Normal file
@ -0,0 +1,35 @@
|
||||
//
|
||||
// ControllerRetainer.swift
|
||||
// Kiwix
|
||||
//
|
||||
// Created by Chris Li on 8/31/16.
|
||||
// Copyright © 2016 Chris. All rights reserved.
|
||||
//
|
||||
|
||||
import UIKit
|
||||
|
||||
class ControllerRetainer {
|
||||
static let shared = ControllerRetainer()
|
||||
private init() {}
|
||||
|
||||
private var libraryStore: UIViewController?
|
||||
private func releaseLibrary() {libraryStore = nil}
|
||||
|
||||
var library: UIViewController {
|
||||
let controller = libraryStore ?? UIStoryboard.library.instantiateInitialViewController()
|
||||
libraryStore = controller
|
||||
return controller!
|
||||
}
|
||||
|
||||
func didDismissLibrary() {
|
||||
if #available(iOS 10, *) {
|
||||
NSTimer.scheduledTimerWithTimeInterval(120.0, repeats: false, block: { (timer) in
|
||||
print("set nil")
|
||||
self.libraryStore = nil
|
||||
})
|
||||
} else {
|
||||
NSTimer.scheduledTimerWithTimeInterval(120.0, target: self, selector: Selector("releaseLibrary"), userInfo: nil, repeats: false)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@ -26,9 +26,13 @@ class LibrarySplitViewController: UISplitViewController, UISplitViewControllerDe
|
||||
}
|
||||
|
||||
func dismiss() {
|
||||
dismissViewControllerAnimated(true, completion: nil)
|
||||
dismissViewControllerAnimated(true) {
|
||||
ControllerRetainer.shared.didDismissLibrary()
|
||||
}
|
||||
}
|
||||
|
||||
// MARK: - UISplitViewControllerDelegate
|
||||
|
||||
func splitViewController(splitViewController: UISplitViewController, collapseSecondaryViewController secondaryViewController: UIViewController, ontoPrimaryViewController primaryViewController: UIViewController) -> Bool {
|
||||
guard !isShowingLangFilter else {return false}
|
||||
return true
|
||||
|
@ -22,7 +22,6 @@ class MainController: UIViewController {
|
||||
var tableOfContentsController: TableOfContentsController?
|
||||
var bookmarkController: BookmarkController?
|
||||
var bookmarkNav: UIViewController?
|
||||
var libraryController: UIViewController?
|
||||
var settingController: UIViewController?
|
||||
var searchController: SearchController?
|
||||
var welcomeController: UIViewController?
|
||||
@ -86,7 +85,6 @@ class MainController: UIViewController {
|
||||
tableOfContentsController = nil
|
||||
bookmarkController = nil
|
||||
bookmarkNav = nil
|
||||
libraryController = nil
|
||||
settingController = nil
|
||||
searchController = nil
|
||||
welcomeController = nil
|
||||
@ -240,10 +238,9 @@ class MainController: UIViewController {
|
||||
}
|
||||
|
||||
func showLibraryButtonTapped() {
|
||||
guard let viewController = libraryController ?? UIStoryboard.library.instantiateInitialViewController() else {return}
|
||||
viewController.modalPresentationStyle = .FullScreen
|
||||
libraryController = viewController
|
||||
presentViewController(viewController, animated: true, completion: nil)
|
||||
let controller = ControllerRetainer.shared.library
|
||||
controller.modalPresentationStyle = .FullScreen
|
||||
presentViewController(controller, animated: true, completion: nil)
|
||||
}
|
||||
|
||||
func showSettingButtonTapped() {
|
||||
|
@ -49,7 +49,7 @@
|
||||
</dict>
|
||||
</array>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1.7.1643</string>
|
||||
<string>1.7.1666</string>
|
||||
<key>ITSAppUsesNonExemptEncryption</key>
|
||||
<false/>
|
||||
<key>LSRequiresIPhoneOS</key>
|
||||
|
@ -21,7 +21,7 @@
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1.7.2083</string>
|
||||
<string>1.7.2122</string>
|
||||
<key>NSExtension</key>
|
||||
<dict>
|
||||
<key>NSExtensionMainStoryboard</key>
|
||||
|
@ -85,6 +85,7 @@
|
||||
979CB60F1D04AD04005E1BA1 /* PreferenceTabController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 979CB60E1D04AD04005E1BA1 /* PreferenceTabController.swift */; };
|
||||
979CB6C81D05CF37005E1BA1 /* SearchResultController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 979CB6C71D05CF37005E1BA1 /* SearchResultController.swift */; };
|
||||
979CB6CA1D05D26E005E1BA1 /* WebViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 979CB6C91D05D26E005E1BA1 /* WebViewController.swift */; };
|
||||
97A127C41D774C9900FB204D /* ControllerRetainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 97A127C31D774C9900FB204D /* ControllerRetainer.swift */; };
|
||||
97A1FD161D6F71CE00A80EE2 /* DirectoryMonitor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 97A1FD121D6F71CE00A80EE2 /* DirectoryMonitor.swift */; };
|
||||
97A1FD171D6F71CE00A80EE2 /* ExtensionAndTypealias.swift in Sources */ = {isa = PBXBuildFile; fileRef = 97A1FD131D6F71CE00A80EE2 /* ExtensionAndTypealias.swift */; };
|
||||
97A1FD181D6F71CE00A80EE2 /* SearchResult.swift in Sources */ = {isa = PBXBuildFile; fileRef = 97A1FD141D6F71CE00A80EE2 /* SearchResult.swift */; };
|
||||
@ -297,6 +298,7 @@
|
||||
979CB60E1D04AD04005E1BA1 /* PreferenceTabController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = PreferenceTabController.swift; path = Controllers/PreferenceTabController.swift; sourceTree = "<group>"; };
|
||||
979CB6C71D05CF37005E1BA1 /* SearchResultController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = SearchResultController.swift; path = Controllers/SearchResultController.swift; sourceTree = "<group>"; };
|
||||
979CB6C91D05D26E005E1BA1 /* WebViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = WebViewController.swift; path = Controllers/WebViewController.swift; sourceTree = "<group>"; };
|
||||
97A127C31D774C9900FB204D /* ControllerRetainer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ControllerRetainer.swift; sourceTree = "<group>"; };
|
||||
97A1FD121D6F71CE00A80EE2 /* DirectoryMonitor.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DirectoryMonitor.swift; sourceTree = "<group>"; };
|
||||
97A1FD131D6F71CE00A80EE2 /* ExtensionAndTypealias.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ExtensionAndTypealias.swift; sourceTree = "<group>"; };
|
||||
97A1FD141D6F71CE00A80EE2 /* SearchResult.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SearchResult.swift; sourceTree = "<group>"; };
|
||||
@ -817,6 +819,7 @@
|
||||
9771DC4B1C37278E009ECFF0 /* Setting */,
|
||||
97D55EF51D2075180081B523 /* TableOfContentsController.swift */,
|
||||
97A7017E1D2C59CA00AAE2D8 /* GetStartedController.swift */,
|
||||
97A127C31D774C9900FB204D /* ControllerRetainer.swift */,
|
||||
);
|
||||
name = Controllers;
|
||||
path = Controller;
|
||||
@ -1526,6 +1529,7 @@
|
||||
971A10401D022C42007FC62C /* LibraryUseCellularDataTBVC.swift in Sources */,
|
||||
97D681411D6F712800E5FA99 /* DownloadTask+CoreDataProperties.swift in Sources */,
|
||||
97D681391D6F711A00E5FA99 /* DownloadTask.swift in Sources */,
|
||||
97A127C41D774C9900FB204D /* ControllerRetainer.swift in Sources */,
|
||||
97D681321D6F70EC00E5FA99 /* MigrationPolicy.swift in Sources */,
|
||||
97D6811B1D6E2A7100E5FA99 /* DownloadTasksController.swift in Sources */,
|
||||
97D681261D6F70AC00E5FA99 /* SearchOperation.swift in Sources */,
|
||||
|
Loading…
x
Reference in New Issue
Block a user