diff --git a/iOS/Detail/DetailViewController.swift b/iOS/Detail/DetailViewController.swift index f60c8f5e3..36dedcebf 100644 --- a/iOS/Detail/DetailViewController.swift +++ b/iOS/Detail/DetailViewController.swift @@ -168,6 +168,8 @@ class DetailViewController: UIViewController { } let itemSource = ArticleActivityItemSource(url: url, subject: navState?.currentArticle?.title) let activityViewController = UIActivityViewController(activityItems: [itemSource], applicationActivities: nil) + activityViewController.popoverPresentationController?.barButtonItem = self.actionBarButtonItem + present(activityViewController, animated: true) } diff --git a/iOS/Settings/AddAccountViewController.swift b/iOS/Settings/AddAccountViewController.swift index 04e7eda5e..eb78d8174 100644 --- a/iOS/Settings/AddAccountViewController.swift +++ b/iOS/Settings/AddAccountViewController.swift @@ -10,7 +10,7 @@ import Account import UIKit protocol AddAccountDismissDelegate: UIViewController { - func dismiss() + func dismiss(_ viewController: UIViewController) } class AddAccountViewController: UITableViewController, AddAccountDismissDelegate { @@ -24,23 +24,24 @@ class AddAccountViewController: UITableViewController, AddAccountDismissDelegate } override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { - let storyboard = UIStoryboard.settings switch indexPath.row { case 0: - let addViewController = storyboard.instantiateViewController(withIdentifier: "AddLocalAccountViewController") as! AddLocalAccountViewController + let navController = UIStoryboard.settings.instantiateViewController(withIdentifier: "AddLocalAccountNavigationViewController") as! UINavigationController + let addViewController = navController.topViewController as! AddLocalAccountViewController addViewController.delegate = self - navigationController?.pushViewController(addViewController, animated: true) + present(navController, animated: true) case 1: - let addViewController = storyboard.instantiateViewController(withIdentifier: "FeedbinAccountViewController") as! FeedbinAccountViewController + let navController = UIStoryboard.settings.instantiateViewController(withIdentifier: "FeedbinAccountNavigationViewController") as! UINavigationController + let addViewController = navController.topViewController as! FeedbinAccountViewController addViewController.delegate = self - navigationController?.pushViewController(addViewController, animated: true) + present(navController, animated: true) default: break } } - func dismiss() { - navigationController?.popToRootViewController(animated: true) + func dismiss(_ viewController: UIViewController) { + viewController.dismiss(animated: true, completion: nil) } } diff --git a/iOS/Settings/AddLocalAccountViewController.swift b/iOS/Settings/AddLocalAccountViewController.swift index 1ace24fb4..efa58085d 100644 --- a/iOS/Settings/AddLocalAccountViewController.swift +++ b/iOS/Settings/AddLocalAccountViewController.swift @@ -11,6 +11,7 @@ import Account class AddLocalAccountViewController: UIViewController { + @IBOutlet weak var cancelBarButtonItem: UIBarButtonItem! @IBOutlet private weak var localAccountNameLabel: UILabel! @IBOutlet weak var nameTextField: UITextField! @@ -23,10 +24,14 @@ class AddLocalAccountViewController: UIViewController { nameTextField.delegate = self } + @IBAction func cancel(_ sender: Any) { + delegate?.dismiss(self) + } + @IBAction func addAccountTapped(_ sender: Any) { let account = AccountManager.shared.createAccount(type: .onMyMac) account.name = nameTextField.text - delegate?.dismiss() + delegate?.dismiss(self) } } diff --git a/iOS/Settings/FeedbinAccountViewController.swift b/iOS/Settings/FeedbinAccountViewController.swift index cc5d2fdab..69c19c43e 100644 --- a/iOS/Settings/FeedbinAccountViewController.swift +++ b/iOS/Settings/FeedbinAccountViewController.swift @@ -13,7 +13,7 @@ import RSWeb class FeedbinAccountViewController: UIViewController { @IBOutlet weak var activityIndicator: UIActivityIndicatorView! - + @IBOutlet weak var cancelBarButtonItem: UIBarButtonItem! @IBOutlet weak var emailTextField: UITextField! @IBOutlet weak var passwordTextField: UITextField! @IBOutlet weak var addAccountButton: UIButton! @@ -38,6 +38,10 @@ class FeedbinAccountViewController: UIViewController { } } + @IBAction func cancel(_ sender: Any) { + delegate?.dismiss(self) + } + @IBAction func addAccountTapped(_ sender: Any) { self.errorMessageLabel.text = nil @@ -74,7 +78,7 @@ class FeedbinAccountViewController: UIViewController { self.account?.refreshAll() } - self.delegate?.dismiss() + self.delegate?.dismiss(self) } catch { self.errorMessageLabel.text = NSLocalizedString("Keychain error while storing credentials.", comment: "Credentials Error") } @@ -89,13 +93,12 @@ class FeedbinAccountViewController: UIViewController { } private func enableNavigation() { - self.navigationItem.backBarButtonItem?.isEnabled = true + self.cancelBarButtonItem.isEnabled = true self.addAccountButton.isEnabled = true - self.activityIndicator.isHidden = true } private func disableNavigation() { - navigationItem.backBarButtonItem?.isEnabled = false + cancelBarButtonItem.isEnabled = false addAccountButton.isEnabled = false } @@ -108,7 +111,7 @@ class FeedbinAccountViewController: UIViewController { self.activityIndicator.isHidden = true self.activityIndicator.stopAnimating() } - + } extension FeedbinAccountViewController: UITextFieldDelegate { diff --git a/iOS/Settings/Settings.storyboard b/iOS/Settings/Settings.storyboard index 6ad64c7f2..462b663f1 100644 --- a/iOS/Settings/Settings.storyboard +++ b/iOS/Settings/Settings.storyboard @@ -146,31 +146,10 @@ - - - - - - - - - - - - - - - - + @@ -200,7 +179,7 @@ - + @@ -228,7 +207,7 @@ - + @@ -252,7 +231,7 @@ - + @@ -269,7 +248,7 @@ - + @@ -430,67 +409,73 @@ - + - + - - - - - - - - - + + + + + + + + + + + + + + - - - - + + - + - + - + - - - - - - - - - + + + + + + + + + + + + + + - - - - + + - + @@ -508,6 +493,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -517,10 +534,10 @@ - + - + @@ -536,7 +553,7 @@ - + @@ -545,7 +562,7 @@ - + diff --git a/iOS/Settings/SettingsViewController.swift b/iOS/Settings/SettingsViewController.swift index f395d62d1..52c7da5f7 100644 --- a/iOS/Settings/SettingsViewController.swift +++ b/iOS/Settings/SettingsViewController.swift @@ -131,13 +131,11 @@ class SettingsViewController: UITableViewController { UIApplication.shared.open(URL(string: "https://ranchero.com/netnewswire/")!, options: [:]) } case 2: - UIApplication.shared.open(URL(string: "https://appcamp4girls.com/contribute/")!, options: [:]) - case 3: if indexPath.row == 1 { let timeline = UIStoryboard.settings.instantiateController(ofType: TimelineNumberOfLinesViewController.self) self.navigationController?.pushViewController(timeline, animated: true) } - case 4: + case 3: switch indexPath.row { case 0: let timeline = UIStoryboard.settings.instantiateController(ofType: RefreshIntervalViewController.self)