diff --git a/WireGuard/Base.lproj/Main.storyboard b/WireGuard/Base.lproj/Main.storyboard index 4b0e771..f58a013 100644 --- a/WireGuard/Base.lproj/Main.storyboard +++ b/WireGuard/Base.lproj/Main.storyboard @@ -101,14 +101,31 @@ - - - - - + + + + + + + + + + + + + + + + + + + + + + diff --git a/WireGuard/ViewControllers/TunnelsTableViewController.swift b/WireGuard/ViewControllers/TunnelsTableViewController.swift index 8cc26e8..24e5cc9 100644 --- a/WireGuard/ViewControllers/TunnelsTableViewController.swift +++ b/WireGuard/ViewControllers/TunnelsTableViewController.swift @@ -24,6 +24,10 @@ class TunnelsTableViewController: UITableViewController { var viewContext: NSManagedObjectContext! + @IBOutlet var settingsButton: UIBarButtonItem! + @IBOutlet var editButton: UIBarButtonItem! + @IBOutlet var doneButton: UIBarButtonItem! + private lazy var fetchedResultsController: FetchedResultsController = { let fetchRequest = NSFetchRequest() fetchRequest.entity = Tunnel.entity() @@ -66,6 +70,26 @@ class TunnelsTableViewController: UITableViewController { tableView.tableFooterView = UIView(frame: CGRect.zero) } + override func viewWillAppear(_ animated: Bool) { + super.viewWillAppear(animated) + updateBarButtons() + } + + @IBAction func editTunnels(_ sender: Any) { + tableView.setEditing(!tableView.isEditing, animated: true) + updateBarButtons() + + } + + private func updateBarButtons() { + navigationController?.setToolbarHidden(tableView.isEditing, animated: true) + if tableView.isEditing { + self.navigationItem.setRightBarButtonItems([doneButton], animated: true) + } else { + self.navigationItem.setRightBarButtonItems([settingsButton, editButton], animated: true) + } + } + @IBAction func showSettings(_ sender: Any) { delegate?.showSettings() } @@ -254,6 +278,11 @@ class TunnelTableViewCell: UITableViewCell { tunnelSwitch.onTintColor = status == .invalid || status == .reasserting ? .gray : .green tunnelSwitch.isEnabled = true } + + override func setEditing(_ editing: Bool, animated: Bool) { + super.setEditing(editing, animated: animated) + tunnelSwitch.isHidden = editing + } } extension TunnelTableViewCell: Identifyable {}