뷰 컨트롤러간에 전환하는 데 내 앱 대리인을 사용하고 있습니다. 대리자가 서버의 메시지를 기반으로 더 이상보기 컨트롤러가 필요하지 않다고 결정하면 현재보기를 제거하고 다른보기로 바꿔야합니다. 현재 내 코드는 다음과 같습니다.더 이상 필요없는보기 컨트롤러를 제거하려면 어떻게합니까?
- (void) showFight: (NSNotification*) notification
{
if(self.window.rootViewController != self.fightViewController)
{
NSDictionary* dict = [notification userInfo];
FightViewController *fightView = [[FightViewController alloc]
initWithNibName:@"FightViewController" bundle:nil];
fightView.userId = _userId;
self.fightViewController = fightView;
[fightView release];
[self.radarViewController.view removeFromSuperview]; // Doesn't work.
self.window.rootViewController = self.fightViewController;
[self.fightViewController showMonster:dict];
}
}
백그라운드에서 음향 효과를들을 수 있으므로보기 컨트롤러가 제거되지 않습니다.
언제든지 메모리에서 하나의보기 컨트롤러 만 필요하므로보기 컨트롤러를 완전히 파괴하고 싶습니다. 위의 코드에서 볼 수 있듯이 처음부터 매번 뷰 컨트롤러를 만들 계획입니다. 나는 이것을 부적절하게하고 있는가?
self.myViewController = nil은 다른 유지 된 참조가없는 한 메모리에서 VC를 파괴합니다. – Felix