您好我试图将视图控制器与表视图单元格中的uibutton连接为弹出连接。我有一个小视图控制器,里面有2个按钮,应该是我的popover。我有一个桌面视图,里面有很多细胞和按钮。当用户点击特定按钮时,我想在单击的按钮上打开一个带有锚点的弹出窗口,就像静态内容上的弹出连接的默认行为一样。
但在处理动态内容时,我在故事板中收到此错误: 无法编译连接...
我不想使用像隐藏的1个像素按钮这样的脏黑客。我试图创建一个自定义segue,但它也不能正常工作。
那么实现这一目标的最佳方法是什么?
这就是这个例子的代码:
import UIKit
class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {
override func viewDidLoad() {
super.viewDidLoad()
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 1
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell") as! CustomTableViewCell
let button = cell.customButton
return cell
}
}
import UIKit
class CustomTableViewCell: UITableViewCell {
@IBOutlet weak var customButton: UIButton!
@IBAction func buttonTapped(_ sender: Any) {
}
override func awakeFromNib() {
super.awakeFromNib()
}
override func setSelected(_ selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
}
}
答案 0 :(得分:0)
如果你的弹出视图只有按钮,你可以使用UIAlertController
,但箭头只会出现在iPad中
@IBAction func buttonTapped(_ sender: Any) {
let alertVC = UIAlertController(title: nil, message: nil, preferredStyle: .actionSheet)
alertVC.modalPresentationStyle = .popover
//setup
if let popoverController = alertVC.popoverPresentationController {
popoverController.permittedArrowDirections = .any
popoverController.sourceView = self
popoverController.sourceRect = self.bounds
}
}
tableVC.present(alertVC, animated: true, completion: nil)