2011-01-26 18 views
0

別のViewController(DetailViewController)を表示するためにpushViewControllerを呼び出すルートViewController(RootViewController)があります。 DetailViewControllerでは、ルートViewControllerに表示される内容に影響する編集を行います。したがって、DetailViewControllerがpopViewControllerAnimatedによって削除された後、RootViewControllerのビューを再描画する必要があります。popViewControllerAnimatedの後にViewControllerをリフレッシュする

問題は、このシナリオではsetNeedsDisplayが機能していないようです。 RootViewControllerのviewWillAppear方法では、私が呼ん:

[self.view setNeedsDisplay] 

しかし、RootViewControllerビューの内容が更新されません。ですから、setNeedsDisplayの動作を妨げるNavigation Controllerについて何かがあるかどうかは疑問です。

私は見つけることができる唯一の回避策は、あなたが代わりのviewDidLoadのviewWillAppearであなたのビューを更新することができ、ビュー全体

self.view = nil; 

答えて

2

を再描画のviewDidLoad、への呼び出しを強制的に次のコードを、ということです。 setNeedsDisplayを呼び出す必要はありません。

+1

しかし、私はなぜviewWillAppear [self.view setNeedsDisplay]が動作しないように見えるのだろうかと思います。理論的には、これによってビュー自体が再描画されるはずです。 – user542428

関連する問題