aboutsummaryrefslogtreecommitdiffstats
path: root/WireGuard/WireGuard/UI/iOS/MainViewController.swift
diff options
context:
space:
mode:
authorRoopesh Chander <roop@roopc.net>2018-12-07 19:05:04 +0530
committerRoopesh Chander <roop@roopc.net>2018-12-07 19:05:08 +0530
commit105eca7adcaa41f54228da53e237316e61f08c98 (patch)
tree84747d6faa72aced77dafb03aab79b641f8c2d64 /WireGuard/WireGuard/UI/iOS/MainViewController.swift
parentMain VC: No need to refresh statuses if the tunnelsManager isn't initialized yet (diff)
downloadwireguard-apple-105eca7adcaa41f54228da53e237316e61f08c98.tar.xz
wireguard-apple-105eca7adcaa41f54228da53e237316e61f08c98.zip
State restoration: Restore tunnel detail view
Signed-off-by: Roopesh Chander <roop@roopc.net>
Diffstat (limited to 'WireGuard/WireGuard/UI/iOS/MainViewController.swift')
-rw-r--r--WireGuard/WireGuard/UI/iOS/MainViewController.swift29
1 files changed, 29 insertions, 0 deletions
diff --git a/WireGuard/WireGuard/UI/iOS/MainViewController.swift b/WireGuard/WireGuard/UI/iOS/MainViewController.swift
index 74ad1ca..69f40d5 100644
--- a/WireGuard/WireGuard/UI/iOS/MainViewController.swift
+++ b/WireGuard/WireGuard/UI/iOS/MainViewController.swift
@@ -23,6 +23,11 @@ class MainViewController: UISplitViewController {
super.init(nibName: nil, bundle: nil)
self.viewControllers = [ masterNC, detailNC ]
+
+ // State restoration
+ self.restorationIdentifier = "MainVC"
+ masterNC.restorationIdentifier = "MasterNC"
+ detailNC.restorationIdentifier = "DetailNC"
}
required init?(coder aDecoder: NSCoder) {
@@ -67,6 +72,30 @@ extension MainViewController {
tunnelsManager.refreshStatuses()
}
}
+
+ func showTunnelDetailForTunnel(named tunnelName: String, animated: Bool) {
+ let showTunnelDetailBlock: (TunnelsManager) -> Void = { [weak self] (tunnelsManager) in
+ if let tunnel = tunnelsManager.tunnel(named: tunnelName) {
+ let tunnelDetailVC = TunnelDetailTableViewController(tunnelsManager: tunnelsManager, tunnel: tunnel)
+ let tunnelDetailNC = UINavigationController(rootViewController: tunnelDetailVC)
+ tunnelDetailNC.restorationIdentifier = "DetailNC"
+ if let self = self {
+ if (animated) {
+ self.showDetailViewController(tunnelDetailNC, sender: self)
+ } else {
+ UIView.performWithoutAnimation {
+ self.showDetailViewController(tunnelDetailNC, sender: self)
+ }
+ }
+ }
+ }
+ }
+ if let tunnelsManager = tunnelsManager {
+ showTunnelDetailBlock(tunnelsManager)
+ } else {
+ onTunnelsManagerReady = showTunnelDetailBlock
+ }
+ }
}
extension MainViewController: UISplitViewControllerDelegate {