More context menus
This commit is contained in:
parent
736e8283e1
commit
a1cf4a5789
|
@ -210,4 +210,23 @@ extension HomeViewController: UICollectionViewDelegate {
|
||||||
vc.title = item.title
|
vc.title = item.title
|
||||||
show(vc, sender: nil)
|
show(vc, sender: nil)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func collectionView(_ collectionView: UICollectionView, contextMenuConfigurationForItemAt indexPath: IndexPath, point: CGPoint) -> UIContextMenuConfiguration? {
|
||||||
|
guard let item = dataSource.itemIdentifier(for: indexPath) else {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return UIContextMenuConfiguration(identifier: nil, previewProvider: {
|
||||||
|
return ItemsViewController(fetchRequest: item.fetchRequest, fervorController: self.fervorController)
|
||||||
|
}, actionProvider: nil)
|
||||||
|
}
|
||||||
|
|
||||||
|
func collectionView(_ collectionView: UICollectionView, willPerformPreviewActionForMenuWith configuration: UIContextMenuConfiguration, animator: UIContextMenuInteractionCommitAnimating) {
|
||||||
|
guard let vc = animator.previewViewController else {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
animator.preferredCommitStyle = .pop
|
||||||
|
animator.addCompletion {
|
||||||
|
self.show(vc, sender: nil)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -35,6 +35,7 @@ class ItemsViewController: UIViewController {
|
||||||
configuration.backgroundColor = .appBackground
|
configuration.backgroundColor = .appBackground
|
||||||
let layout = UICollectionViewCompositionalLayout.list(using: configuration)
|
let layout = UICollectionViewCompositionalLayout.list(using: configuration)
|
||||||
collectionView = UICollectionView(frame: view.bounds, collectionViewLayout: layout)
|
collectionView = UICollectionView(frame: view.bounds, collectionViewLayout: layout)
|
||||||
|
collectionView.delegate = self
|
||||||
collectionView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
|
collectionView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
|
||||||
collectionView.register(ItemCollectionViewCell.self, forCellWithReuseIdentifier: "itemCell")
|
collectionView.register(ItemCollectionViewCell.self, forCellWithReuseIdentifier: "itemCell")
|
||||||
view.addSubview(collectionView)
|
view.addSubview(collectionView)
|
||||||
|
@ -80,6 +81,27 @@ extension ItemsViewController: NSFetchedResultsControllerDelegate {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
extension ItemsViewController: UICollectionViewDelegate {
|
||||||
|
func collectionView(_ collectionView: UICollectionView, contextMenuConfigurationForItemAt indexPath: IndexPath, point: CGPoint) -> UIContextMenuConfiguration? {
|
||||||
|
guard let item = dataSource.itemIdentifier(for: indexPath) else {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return UIContextMenuConfiguration(identifier: nil, previewProvider: {
|
||||||
|
ReadViewController(item: item, fervorController: self.fervorController)
|
||||||
|
}, actionProvider: nil)
|
||||||
|
}
|
||||||
|
|
||||||
|
func collectionView(_ collectionView: UICollectionView, willPerformPreviewActionForMenuWith configuration: UIContextMenuConfiguration, animator: UIContextMenuInteractionCommitAnimating) {
|
||||||
|
guard let vc = animator.previewViewController else {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
animator.preferredCommitStyle = .pop
|
||||||
|
animator.addCompletion {
|
||||||
|
self.show(vc, sender: nil)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
extension ItemsViewController: ItemCollectionViewCellDelegate {
|
extension ItemsViewController: ItemCollectionViewCellDelegate {
|
||||||
func itemCellSelected(item: Item) {
|
func itemCellSelected(item: Item) {
|
||||||
show(ReadViewController(item: item, fervorController: fervorController), sender: nil)
|
show(ReadViewController(item: item, fervorController: fervorController), sender: nil)
|
||||||
|
|
Loading…
Reference in New Issue