2018-08-11 07:49:21 +00:00
|
|
|
//
|
|
|
|
// MainViewController.swift
|
|
|
|
// WireGuard
|
|
|
|
//
|
|
|
|
// Created by Roopesh Chander on 11/08/18.
|
2018-10-13 02:00:26 +00:00
|
|
|
// Copyright © 2018 WireGuard LLC. All rights reserved.
|
2018-08-11 07:49:21 +00:00
|
|
|
//
|
|
|
|
|
|
|
|
import UIKit
|
|
|
|
|
2018-10-13 01:38:30 +00:00
|
|
|
class MainViewController: UISplitViewController {
|
2018-08-11 07:49:21 +00:00
|
|
|
override func loadView() {
|
2018-10-13 01:38:30 +00:00
|
|
|
let detailVC = UIViewController()
|
|
|
|
let detailNC = UINavigationController(rootViewController: detailVC)
|
|
|
|
|
|
|
|
let masterVC = TunnelsListTableViewController()
|
|
|
|
let masterNC = UINavigationController(rootViewController: masterVC)
|
|
|
|
|
|
|
|
self.viewControllers = [ masterNC, detailNC ]
|
|
|
|
|
|
|
|
super.loadView()
|
2018-08-11 07:49:21 +00:00
|
|
|
}
|
2018-10-13 10:32:42 +00:00
|
|
|
|
|
|
|
override func viewDidLoad() {
|
|
|
|
self.delegate = self
|
|
|
|
|
|
|
|
// On iPad, always show both masterVC and detailVC, even in portrait mode, like the Settings app
|
|
|
|
self.preferredDisplayMode = .allVisible
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
extension MainViewController: UISplitViewControllerDelegate {
|
|
|
|
func splitViewController(_ splitViewController: UISplitViewController,
|
|
|
|
collapseSecondary secondaryViewController: UIViewController,
|
|
|
|
onto primaryViewController: UIViewController) -> Bool {
|
|
|
|
// On iPhone, if the secondaryVC (detailVC) is just a UIViewController, it indicates that it's empty,
|
|
|
|
// so just show the primaryVC (masterVC).
|
|
|
|
let detailVC = (secondaryViewController as? UINavigationController)?.viewControllers.first
|
|
|
|
let isDetailVCEmpty: Bool
|
|
|
|
if let detailVC = detailVC {
|
|
|
|
isDetailVCEmpty = (type(of: detailVC) == UIViewController.self)
|
|
|
|
} else {
|
|
|
|
isDetailVCEmpty = true
|
|
|
|
}
|
|
|
|
return isDetailVCEmpty
|
|
|
|
}
|
2018-08-11 07:49:21 +00:00
|
|
|
}
|