私はUITabBarControllerのサブクラスであるBaseViewControllerを持っており、このビューコントローラで私のビューを設定しています。View Controllerを解放すると、すべてのプロパティが解放されますか?
-(void)setUpViews
{
FirstController *mainViewController = [[FirstController alloc] initAssignment:delegate.currentAssignment withMutableArray:myArray];
UINavigationController *firstNavController = [[UINavigationController alloc] initWithRootViewController:mainViewController];
SecondController *secondViewController = [[SecondController alloc] initWithNibName:@"SecondController" bundle:nil];
UINavigationController *secondNavController = [[UINavigationController alloc] initWithRootViewController:secondViewController];
self.viewControllers = [NSArray arrayWithObjects:firstNavController, secondNavController,nil];
firstNavController.tabBarItem.image = [UIImage imageNamed:@"blablabla.png"];
firstNavController.tabBarItem.title = @"Stream";
secondViewController.tabBarItem.image = [UIImage imageNamed:@"blabla.png"];
secondViewController.tabBarItem.title = @"Favourite";
}
今、私は別のビューコントローラを持って、私はBaseViewController
のサブクラス、ViewHandlerController
それを呼び出します。このviewHandler
の私のviewDidLoad
には、BaseViewController
で宣言されたsetUpViews
が呼び出されます。私のアプリケーションの最初の画面では、ログインボタンが押されたときに、私はViewHandlerController
をインスタンス化し、使用してナビコントローラでTabControllerを成功裡に提示しました。
[[[UIApplication sharedApplication].windows objectAtIndex:0] addSubview:viewControllerHandler.view];
私のアプリの中に。ログアウトボタンがあります。私はNSNotificationCenter
を使って私の最初の画面で宣言されたlogoutMethodを呼び出しています。私の質問は、このlogoutMethodでは、ユーザーが再度ログインできるようにするために以前に割り当てられたオブジェクトを解放するにはどうすればいいですか(logIn - logOut -logIn)? ARCを使用しているので、ViewControllerをNILに設定すると、すべてのクリーンアップが実行されますか?
EDIT:スーパービューから私のViewControllerHandlerを削除し、ゼロに設定されてもそのサブビューを解放するのに役立ちますか?
乾杯
応答に感謝します。私の場合は、私はアークを使用して、私は減少させる/私のアプリのメモリ圧迫を避けたい。私が望むのは、私のアプリが大量のメモリを消費しているため、オブジェクトを緊急にリリースすることです。 – janusbalatbat