私はvar progressBarというUIView変数を宣言します:UIView?removeFromSuperview()は常に動作しない
と私は
func showProgressBar(showBar: Bool){
if showBar{
let viewHeight = view.frame.size.height
progressBar = Bundle.main.loadNibNamed("progressBar", owner: nil, options: nil)?.first as? UIView
progressBar?.frame = CGRect(x: 0, y: viewHeight - 80 , width: self.view.frame.width, height: 80)
if let bar = progressBar{
self.view.addSubview(bar)
}
}else{
DispatchQueue.main.async() {
self.progressBar?.removeFromSuperview()
}
}
この機能でそれを表示したり、表示を隠す私は、ビュー間のビットをナビゲートする際に時々私はself.progressBar?.removeFromSuperview()
が実行された場合でも、プログレスバーを非表示にすることはできませんよ。ビューが古いプログレスバーへの参照を失ったように見えます...あなたはその問題についてのアイディアを持っていて、どのように修正することができますか?
else condで直接progressBarを削除してみます。 DispathQueue.main.async()で削除する必要はないと思います。 –
DispatchQueue.main.async()を追加して問題が解決するかどうかを確認しました。それがなければ問題は残る。 –
progressBarが非表示になっていますか? –