- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个在 UIViewController
中定义的弹出窗口,但现在需要从自定义 UICollectionViewCell
中呈现。 present
不再起作用,因为该类是 UICollectionViewCell
而不再是 UIViewController。如何从自定义 UICollectionViewCell
中呈现弹出窗口。
@IBAction func period(_ sender: Any) {
let storyboard = UIStoryboard(name: "ScoreClockPopoverViewController", bundle: nil)
let scoreClockPopoverViewController = storyboard.instantiateViewController(withIdentifier: "ScoreClockPopoverViewController") as! ScoreClockPopoverViewController
scoreClockPopoverViewController.modalPresentationStyle = .popover
let popover = scoreClockPopoverViewController.popoverPresentationController!
popover.delegate = self
popover.permittedArrowDirections = .any
popover.sourceView = periodButton
popover.sourceRect = periodButton.bounds
present(scoreClockPopoverViewController, animated: true, completion:nil)
//Error: Use of unresolved identifier 'present'
}
如果我尝试将 UICollectionViewCell
扩展为 UIViewContoller
,我会收到以下错误:类型“HeaderCollectionViewCell”的扩展无法从类“UIViewController”继承
最佳答案
将您的CollectionViewcontroller
设置为CollectionViewCell
的委托(delegate)。
当调用 CollectionViewCell 上的 period 函数时,调用单元格委托(delegate)的“didClickPeriod”函数(您自己创建)。
包括这个,例如在你的牢房里
protocol HeaderCollectionViewCellDelegate {
func didClickPeriod(sender: Any)
}
确保单元格具有属性
var delegate: HeaderCollectionViewCellDelegate!
注意!。假设您从 Storyboard实例化,您无法在实例化时传递委托(delegate),而必须“手动”填充它。这 !基本上表明您可以使用此属性,就好像它始终已设置一样 - 假设您正确填充了该属性,这将使您免于一直展开。如果不这样做,您将会遇到崩溃。
在您的周期函数中只需执行
@IBAction func period(_ sender: Any) {
self.delegate.didClickPeriod(sender)
}
在您的CollectionViewController
中确保它实现了协议(protocol),例如通过包括
extension YourCollectionViewController: HeaderCollectionViewCellDelegate {
func didClickPeriod(sender: Any) {
// your previous presentation logic.
// But now you're in the CollectionViewController so you can do
...
present(scoreClockPopoverViewController, animated: true, completion:nil)
}
}
关于ios - 如何从自定义 UICollectionViewCell NIB 呈现 popoverPresentationController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46773361/
与本文主题相同: ios13 UIPopoverViewController showing UITableViewController - Safe Area problems / Missing
我有一个UIViewController,它添加了一个UITableView、一个UISearchController。我将此 ViewController 呈现为 UIModalPresentati
我在 iOS Swift 上使用了 popoverPresentationController 并且我在 popover 中同时放置了图像和文本? 我遇到的问题是内容对于弹出框来说太大了?是否可以设置
我有一个 NavigationController,另一个 Controller 被压入其堆栈:BNRDetailsViewController。现在,在 BNRDetailsViewControll
创建了一个 SingleViewApplication,其中我放置了一个按钮。 现在单击按钮,我需要将 tableView 显示为弹出窗口。TableViewController 是在 xib 中创建
我有一个类可以在空的 swift 文件中构造 UIPopoverPresentationController: import Foundation import UIKit class Popover
我正在为 UIAlertController 设置属性,如下所示: alertController.modalPresentationStyle = .popover alertController.
我在尝试使用 popoverPresentationController 时遇到问题,基本上我有两个 View ,一个有一个 popover segue segue 到另一个。然而,第二个 View
我有一个 parent 容器 UIView,它具有三个 subview :1 个 UITextView 和 2 个按钮(按钮位于 UITextView 的顶部,但作为容器 UIView 的 subvi
我正在编写一个“笔记本”风格的程序。笔记本有多个页面,我试图放入一个“转到页面”弹出窗口以允许用户转到任何页面。弹出窗口显示每个页面缩略图的 Collection View 。显然,如果能够: 在弹出
我有一个工具栏,左下角有一个 UIBarButtomItem,标签为 Admin 我需要在点击它时显示一个弹出窗口,但它出现在错误的位置,它出现在屏幕的左上角: 这是打开弹出框的函数: // this
我正在使用新的 popOverPresentationController 在 iOS 8 中呈现 UIPopOverController。我将 popOverLayoutMargins 设置为 {6
我在 Xcode 7.3 中使用 Swift 2.2 将 Delegate 分配给 PopoverPresentationController 时遇到问题 使用委托(delegate)的原因是我试图在
我有一个在 UIViewController 中定义的弹出窗口,但现在需要从自定义 UICollectionViewCell 中呈现。 present 不再起作用,因为该类是 UICollection
我在使 UILabel 通过更改其文本颜色来对 UITextView 使用react时遇到问题。 所以当我的 UITextView 中有超过 250 个单词时,我的 UILabel 将变成红色。但由于
我在显示 UIViewController 时遇到问题,在 UITableViewController 中显示带有来自 iPhone 的弹出窗口演示文稿。我一直在使用的代码可以显示来自任何其他 UIV
我想在用户单击 iPad 中的单元格时显示一个 popoverPresentationController。这是我的代码: override func tableView(tableView: UIT
在下面显示的项目中,有一个 InitialViewController,它有一个标记为“Show Popover”的按钮。当点击该按钮时,应用程序应该将第二个 View Controller (Pop
在我将我的 View 嵌入导航 Controller 之前,这段代码工作正常 if segue.identifier == "PopupInfo" { let controller =
我有一些代码使用新的 UIAlertController 类,在 iOS 8 中工作得很好。它现在在 iOS 9 中崩溃,并显示以下错误消息: 2015-07-23 10:38:27.499 MyAp
我是一名优秀的程序员,十分优秀!