活动指示器出现在错误的视图层次结构中

问题描述 投票:0回答:1

加载到下一个视图时,我已经设置了活动指示器。原始视图包含一个按钮的tableView,当单击按钮时它将直接指向下一个视图。但是,返回原始视图时不会显示。它可以在另一个视图过渡上使用,但是我不知道为什么它在这里不起作用。

这里是处理到下一个视图的按钮单击功能:

@objc func remark(_ sender: UIButton) {
    ViewControllerUtils().showActivityIndicator(uiView: self.tableView)

    DispatchQueue.main.async {
        self.markDetailsDelegate?.getStudentList(paperId: sender.paperId!, schoolClass: sender.schoolClass!, studentToShow: sender.studentToShow, questionNo: sender.questionNo!, readOnlyFlag: false) { returnList, studentReturnList, returnMarkBox, returnMCOptionBox, returnStudentMarkList, error  in
            self.pdfFileList = returnList!
            self.studentList = studentReturnList!
            self.questionMarkBox = returnMarkBox!
            self.mcQuestionOptionBox = returnMCOptionBox!
            self.studentMarkList = returnStudentMarkList!
        }

        DispatchQueue.main.async {
            ViewControllerUtils().hideActivityIndicator(uiView: self.tableView)
        }
    }
}

重新加载tableView的功能(一旦它返回到tableView,就会被调用以重新加载它):

@objc func reloadMarkDetails() {
    ViewControllerUtils().showActivityIndicator(uiView: self.tableView)

    DispatchQueue.main.async {
        self.markDetailsDelegate?.reloadMarkDetails(paperId: self.currentPaperId, schoolClass: self.currentSchoolClass) { returnPDFFileList, returnStudentList, returnQuestionMarkBox, returnMCQuestionOptionBox, returnStudentMarkList, returnPaperCommentList, returnPaperSummary, returnMarkSummary, returnTagSummary, returnLastMarkedSummary, returnAnsNoOfPage, returnDatetime, returnPaperFreezedFlag, error in
            self.studentList = returnStudentList
            self.studentMarkList = returnStudentMarkList
            self.markSummary = returnMarkSummary
            self.lastMarkedSummary = returnLastMarkedSummary
            self.paperFreezedFlag = returnPaperFreezedFlag

            DispatchQueue.main.async {
                ViewControllerUtils().hideActivityIndicator(uiView: self.tableView)

                self.tableView.reloadData()
                self.tableView.layoutIfNeeded()
            }
        }
    }
}

我试图弄清为什么在使用Debug View Hierarchy返回到原始视图时指标没有显示,结果如下:

在转场期间我做错了什么吗?非常感谢有人能帮助我!

ios swift uiactivityindicatorview
1个回答
0
投票

我认为应该是

@objc func remark(_ sender: UIButton) {
    ViewControllerUtils().showActivityIndicator(uiView: self.tableView)

    self.markDetailsDelegate?.getStudentList(paperId: sender.paperId!, schoolClass: sender.schoolClass!, studentToShow: sender.studentToShow, questionNo: sender.questionNo!, readOnlyFlag: false) { returnList, studentReturnList, returnMarkBox, returnMCOptionBox, returnStudentMarkList, error  in

        DispatchQueue.main.async {
            ViewControllerUtils().hideActivityIndicator(uiView: self.tableView)

            self.pdfFileList = returnList!
            self.studentList = studentReturnList!
            self.questionMarkBox = returnMarkBox!
            self.mcQuestionOptionBox = returnMCOptionBox!
            self.studentMarkList = returnStudentMarkList!
        }
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.