diff --git a/Tusker/Extensions/UIViewController+Delegates.swift b/Tusker/Extensions/UIViewController+Delegates.swift index 516d1581..936fc08b 100644 --- a/Tusker/Extensions/UIViewController+Delegates.swift +++ b/Tusker/Extensions/UIViewController+Delegates.swift @@ -10,7 +10,7 @@ import UIKit import MastodonKit import SafariServices -extension UIViewController: StatusTableViewCellDelegate { +extension StatusTableViewCellDelegate where Self: UIViewController { func selected(account: Account) { // don't open if the account is the same as the current one @@ -59,6 +59,7 @@ extension UIViewController: StatusTableViewCellDelegate { } func showLargeImage(_ image: UIImage, description: String?, animatingFrom originView: UIView) { + guard let self = self as? UIViewController & LargeImageViewControllerDelegate else { return } let vc = LargeImageViewController.create(image: image, description: description) vc.delegate = self var frame = originView.convert(originView.bounds, to: view) @@ -78,7 +79,7 @@ extension UIViewController: StatusTableViewCellDelegate { } -extension UIViewController: LargeImageViewControllerDelegate { +extension LargeImageViewControllerDelegate where Self: UIViewController { func closeLargeImage() { dismiss(animated: true) } diff --git a/Tusker/Screens/Compose/ComposeViewController.swift b/Tusker/Screens/Compose/ComposeViewController.swift index 5e760bc7..31c9ed0b 100644 --- a/Tusker/Screens/Compose/ComposeViewController.swift +++ b/Tusker/Screens/Compose/ComposeViewController.swift @@ -123,7 +123,7 @@ class ComposeViewController: UIViewController { guard let status = status else { fatalError("postComplete segue can't occur without Status") } guard let dest = segue.destination as? MainTabBarViewController, let navController = dest.selectedViewController as? UINavigationController, - let topVC = navController.topViewController else { return } + let topVC = navController.topViewController as? StatusTableViewCellDelegate else { return } topVC.selected(status: status) } } diff --git a/Tusker/Screens/Conversation/ConversationViewController.swift b/Tusker/Screens/Conversation/ConversationViewController.swift index 679380c0..a948b688 100644 --- a/Tusker/Screens/Conversation/ConversationViewController.swift +++ b/Tusker/Screens/Conversation/ConversationViewController.swift @@ -120,3 +120,6 @@ class ConversationViewController: UIViewController, UITableViewDataSource, UITab } } + +extension ConversationViewController: StatusTableViewCellDelegate {} +extension ConversationViewController: LargeImageViewControllerDelegate {} diff --git a/Tusker/Screens/Notifications/NotificationsTableViewController.swift b/Tusker/Screens/Notifications/NotificationsTableViewController.swift index 34280528..4f96c833 100644 --- a/Tusker/Screens/Notifications/NotificationsTableViewController.swift +++ b/Tusker/Screens/Notifications/NotificationsTableViewController.swift @@ -138,3 +138,6 @@ class NotificationsTableViewController: UITableViewController { } } + +extension NotificationsTableViewController: StatusTableViewCellDelegate {} +extension NotificationsTableViewController: LargeImageViewControllerDelegate {} diff --git a/Tusker/Screens/Profile/ProfileTableViewController.swift b/Tusker/Screens/Profile/ProfileTableViewController.swift index 4d0efe68..4b32dcdf 100644 --- a/Tusker/Screens/Profile/ProfileTableViewController.swift +++ b/Tusker/Screens/Profile/ProfileTableViewController.swift @@ -174,3 +174,5 @@ extension ProfileTableViewController: ProfileHeaderTableViewCellDelegate { } } + +extension ProfileTableViewController: LargeImageViewControllerDelegate {} diff --git a/Tusker/Screens/Timeline/TimelineTableViewController.swift b/Tusker/Screens/Timeline/TimelineTableViewController.swift index 7a7911aa..35ecbaef 100644 --- a/Tusker/Screens/Timeline/TimelineTableViewController.swift +++ b/Tusker/Screens/Timeline/TimelineTableViewController.swift @@ -132,3 +132,6 @@ class TimelineTableViewController: UITableViewController { } } + +extension TimelineTableViewController: StatusTableViewCellDelegate {} +extension TimelineTableViewController: LargeImageViewControllerDelegate {}