Ios 当屏幕出现时,加载数据需要几秒钟

Ios 当屏幕出现时,加载数据需要几秒钟,ios,swift,Ios,Swift,我已经创建了一个产品详细信息屏幕,当加载时,数据需要几秒钟才能显示出来。我在寻找一个更优雅的解决方案 在加载数据之前,我可以在几秒钟内看到此视图: 当加载的数据看起来像: 上一个屏幕上有推送数据的代码: override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { productInt = indexPath.row let prod

我已经创建了一个产品详细信息屏幕,当加载时,数据需要几秒钟才能显示出来。我在寻找一个更优雅的解决方案

在加载数据之前,我可以在几秒钟内看到此视图:

当加载的数据看起来像:

上一个屏幕上有推送数据的代码:

    override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {

        productInt = indexPath.row
        let product = msproducts[productInt]
        nameToSend = product.name ?? ""
        descToSend = product.short_description ?? ""

        self.performSegue(withIdentifier: "infoViewAlu", sender: nil)

    }

    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {

        if segue.identifier == "infoViewAlu" {
            let controller = segue.destination as! ProduktInfoViewController

            ProgressHUD.show("Proszę czekać")
            controller.productName = nameToSend
            controller.productDesc = descToSend


        }

    }
下面是在表中显示此数据的代码:

    @IBOutlet weak var infoProductName: UILabel!
    @IBOutlet weak var productDescription: UITextView!

    var productName: String = ""
    var productDesc: String = ""

    override func viewDidLoad() {
        super.viewDidLoad()

        changeData(name: productName, desc: productDesc)
        title = productName 
    }

    func changeData(name: String, desc: String){
        infoProductName.text = name
        productDescription.text = desc
        ProgressHUD.dismiss()
    }

有人能告诉我问题出在哪里,为什么屏幕分两步加载吗?

问题可能是您在继续之前正在调用
progressHUD.show
。尝试:

    @IBOutlet weak var infoProductName: UILabel!
    @IBOutlet weak var productDescription: UITextView!

    var productName: String = ""
    var productDesc: String = ""

    override func viewDidLoad() {
        super.viewDidLoad()

        // remove this from **prepare for segue**
        ProgressHUD.show("Proszę czekać")
        //
        changeData(name: productName, desc: productDesc)
        title = productName 
    }

    func changeData(name: String, desc: String){
        infoProductName.text = name
        productDescription.text = desc
        ProgressHUD.dismiss()
    }

请从详细信息屏幕中删除所有UI元素,并再次使用新元素重新设计(不要复制旧元素)

由于特定用户界面的iOS框架内存泄漏,我已经多次遇到此类问题


如果不想从详细信息屏幕中删除所有元素,请逐个删除元素并进行检查。(您必须找到特定的UI元素)。

不应该。您不必对当前代码使用
ProgressHUD
。它应该是“快速代码执行”。你正在主线程上做其他事情。嗨,我做了你写的,但它仍然不能很好地工作