0

我有一个带有自定义单元格的 XIB 文件,它有两个按钮。

基本上,我希望在用户点击按钮时弹出某种对话框,通知他们详细信息。我试图从相应的 Swift 文件中显示警报视图,但由于 XIB 文件继承自 aUITableViewCell我无法呈现警报控制器。如果可能的话,我还希望用户能够编辑显示的信息(通过警报控制器)。

在这种情况下,我希望按钮显示用户的 Instagram 和 Twitter @用户名。

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)
    }
}
4

1 回答 1

0

您不能从单元类中呈现任何内容。您需要 UIViewController 来呈现任何控制器。

有很多方法可以实现这一目标。

方式1:在根控制器上展示您的控制器。像这样

@IBAction func twitterTapped(_ sender: UIButton) {
    UIApplication.shared.windows.first?.rootViewController?.present(/*Your controller*/, animated: true, completion: nil) //<==Here
}

方式 2:将您的控制器放在最顶部的控制器上。如何找到最顶级的控制器

@IBAction func twitterTapped(_ sender: UIButton) {
    UIApplication().topMostViewController()?.present(/*Your controller*/, animated: true, completion: nil) //<==Here
}

方式 3:将您的操作直接绑定到视图控制器类并将您的控制器呈现在 self. 为此,如果您需要索引路径,您可以检查它。如何获取索引路径?

于 2021-02-17T16:20:42.780 回答