1

UINavigationController オブジェクト自体を解放せずに、 UINavigationController 内のすべてのビューコントローラーを解放する方法。

私の場合は、一連のviewcontrollersがプッシュされたnavigationcontrollerを持っています。特定の状況で、新しいviewcontrollerを利用可能なnavigationcontrollerのrootViewControllerとして設定したいので、使用しました

"[navigationcontrollerObj initWithRootViewController:viewController]"; 方法。

それは正常に動作し、新しいビュー階層が適切に設定されています。しかし、私の問題は、以前にプッシュされたビューコントローラーが解放されていないことです。

これは、以前にビューコントローラーをプッシュした方法です

[navigationcontrollerObj pushViewController:viewControllerObj]; viewControllerObj リリース];

助けてください.....

4

2 に答える 2

3

rootviewcontroller にポップすることを意図している場合は、これを試すことができます。

[self.navigationController popToRootViewControllerAnimated:NO];

これにより、他の場所に保持していない場合は、すべてのビュー コントローラーも解放されます。プッシュした後、すべてのView Controllerを解放したことを確認してください。これが完了すると、任意のビュー コントローラーを rootviewcontroller として設定できます。

于 2013-01-23T07:46:50.367 に答える
1
[self.navigationController popToRootViewControllerAnimated:NO]; will pop all other view controller
- (void)setViewControllers:(NSArray *)viewControllers animated:(BOOL)animated // use this function to change the root view controller
于 2013-01-23T08:43:07.610 に答える