Skip to content

Commit e46ed8a

Browse files
Merge branch 'fix-force-touch'
2 parents 2b23228 + dab295b commit e46ed8a

File tree

2 files changed

+26
-2
lines changed

2 files changed

+26
-2
lines changed

trySwift/OrganizersTableViewController.swift

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,18 @@ import TrySwiftData
1212
class OrganizersTableViewController: UITableViewController {
1313

1414
fileprivate let organizers = Conference.current.organizers
15+
fileprivate var forceTouchedOrganizer: Organizer?
1516

1617
override func viewDidLoad() {
1718
super.viewDidLoad()
1819
edgesForExtendedLayout = []
1920

2021
title = "Organizers".localized()
2122
configureTableView()
23+
24+
if traitCollection.forceTouchCapability == .available {
25+
registerForPreviewing(with: self, sourceView: tableView)
26+
}
2227
}
2328
}
2429

@@ -48,6 +53,22 @@ extension OrganizersTableViewController {
4853
}
4954
}
5055

56+
extension OrganizersTableViewController: UIViewControllerPreviewingDelegate {
57+
58+
func previewingContext(_ previewingContext: UIViewControllerPreviewing, viewControllerForLocation location: CGPoint) -> UIViewController? {
59+
guard let indexPath = tableView.indexPathForRow(at: location) else { return nil }
60+
//This will show the cell clearly and blur the rest of the screen for our peek.
61+
previewingContext.sourceRect = tableView.rectForRow(at: indexPath)
62+
let organizer = organizers[indexPath.row]
63+
forceTouchedOrganizer = organizer
64+
return OrganizerDetailTableViewController(organizer: organizer)
65+
}
66+
67+
func previewingContext(_ previewingContext: UIViewControllerPreviewing, commit viewControllerToCommit: UIViewController) {
68+
self.navigationController?.pushViewController(viewControllerToCommit, animated: true)
69+
}
70+
}
71+
5172
fileprivate extension OrganizersTableViewController {
5273

5374
func configureTableView() {

trySwift/SpeakersViewController.swift

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ class SpeakersViewController: UITableViewController {
1414
fileprivate let speakers = Speaker.all
1515
fileprivate let speakerDetailSegue = "speakerDetailSegue"
1616
fileprivate var didShowDetail = false
17+
fileprivate var forceTouchedSpeaker: Speaker?
1718

1819
override func awakeFromNib() {
1920
super.awakeFromNib()
@@ -88,11 +89,13 @@ extension SpeakersViewController: UIViewControllerPreviewingDelegate {
8889
guard let indexPath = tableView.indexPathForRow(at: location) else { return nil }
8990
//This will show the cell clearly and blur the rest of the screen for our peek.
9091
previewingContext.sourceRect = tableView.rectForRow(at: indexPath)
91-
return speakerDetailViewController(for: speakers[indexPath.row])
92+
let speaker = speakers[indexPath.row]
93+
forceTouchedSpeaker = speaker
94+
return speakerDetailViewController(for: speaker)
9295
}
9396

9497
func previewingContext(_ previewingContext: UIViewControllerPreviewing, commit viewControllerToCommit: UIViewController) {
95-
performSegue(withIdentifier: speakerDetailSegue, sender: nil)
98+
performSegue(withIdentifier: speakerDetailSegue, sender: forceTouchedSpeaker)
9699
}
97100
}
98101

0 commit comments

Comments
 (0)