如何解决轻按按钮时显示弹出窗口 Swift
基本上,当用户点击按钮时,我希望弹出一个对话框,通知他们详细信息。我试图从相应的 Swift 文件中显示警报视图,但由于 XIB 文件继承自 UITableViewCell
,我无法显示警报控制器。如果可能,我还希望用户能够编辑显示的信息(通过警报控制器)。
在这种情况下,我希望按钮显示用户的 Instagram 和 Twitter @usernames。
import UIKit
class SocialsTableViewCell: UITableViewCell {
@IBOutlet var instagramButton: UIButton!
@IBOutlet var twitterButton: UIButton!
var instagramAt = ""
var twitterat = ""
override func setSelected(_ selected: Bool,animated: Bool) {
super.setSelected(selected,animated: animated)
// Configure the view for the selected state
}
@IBAction func instagramTapped(_ sender: UIButton) {
print("iNSTA TAPPED")
}
@IBAction func twitterTapped(_ sender: UIButton) {
print(twitterat)
}
}
解决方法
您不能展示单元格类中的任何内容。你需要 UIViewController 来呈现任何控制器。
有很多方法可以实现这一点。
方式 1: 在根控制器上展示您的控制器。像这样
@IBAction func twitterTapped(_ sender: UIButton) {
UIApplication.shared.windows.first?.rootViewController?.present(/*Your controller*/,animated: true,completion: nil) //<==Here
}
方式 2: 在最顶部的控制器上展示您的控制器。 How to find top most controller。
@IBAction func twitterTapped(_ sender: UIButton) {
UIApplication().topMostViewController()?.present(/*Your controller*/,completion: nil) //<==Here
}
方式 3: 将您的操作直接绑定到视图控制器类,并将您的控制器呈现给 self。为此,如果您需要索引路径,您可以检查这个。 How to get indexPath?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。