進捗状況をUIProgressView
で追跡していて、私が追跡しているプロパティにオブザーバーを設定しました。observeValueForKeyPathがUIViewControllerに戻るときに呼び出されない
私はこのように、viewWillAppear
にオブザーバを追加します。
-(void)viewWillAppear:(BOOL)animated
{
[self addObserver:self forKeyPath:@"progress" options:0 context:nil];
}
とするとき、私はこのように、viewWillDisappearでオブザーバを削除します。
-(void)viewWillDisappear:(BOOL)animated
{
[self removeObserver:self forKeyPath:@"progress"];
}
そして、私は更新されobserveValueForKeyPath方法で進捗状況:
今すぐ離れるときviewController
と私はobserveValueForKeyPath
が呼び出されていないと返信し、私はprogressView
を継続的に更新することはありません。上記コードに従って
progressViewの動作は、このビデオで示されている:
https://youtu.be/PVRT_Jjtdh4
あなたのコードとは、KVOを使用する必要はありません、それ自体であなたのViewControllerを観察しているようです。あなたがビューを離れることがない場合は、あなたの進捗状況が更新される予定です。人々を混乱させるものは、あなたがあなたの進捗状況を気にする必要があります。あなたがそれを所有者のままにしておくと、viewControllerです。一方、progressViewがviewControllerの外側のビューである場合、viewControllerを観察する必要があるのはprogressView自体です。 – Lane