aboutsummaryrefslogtreecommitdiffstats
path: root/WireGuard/WireGuard/UI/iOS/MainViewController.swift
diff options
context:
space:
mode:
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 {