下面的代码打印了在TableView中单击的任何单元格的内容。

override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath)  {
    print(self.cell[indexPath.row])
}


我想使用打印在另一个ViewController上的标签中的结果。

如何从函数中获取字符串值,然后在另一个视图上使用它?我的想法是使用全局变量,但我需要首先获取字符串值。

最佳答案

例如,您可以将另一个ViewController(SecondScreen)的单例与var main一起使用的简单组织(以防万一,通常通过Storyboard初始化SecondScreen时):

class SecondScreen : UIViewController {
    // 1. add this var
    static var main : SecondScreen? = nil

    // 2. Your some UI element
    @IBOutlet weak var textButton: UIButton!

    // 3. add this method
    func updateUI(string : String) {
        textButton.setTitle(string, for: .normal)
    }

    // 4. setting a var
    override func viewDidLoad() {
        if SecondScreen.main == nil {
            SecondScreen.main = self
        }
    }

    // ... another your and standard methods
}


您可以像这样更新SecondScreen:

    let v = SecondScreen.main
    v?.updateUI(string: "yourString")


我也建议您调用异步方法:

DispatchQueue.main.async {
    SecondScreen.main?.updateUI(withString : string)
}


我建议您进一步了解单身人士...

08-05 23:36