У меня есть контроллер вида на основе навигации, и в контроллере вида я спрятал верхнюю панель навигации и использую пользовательский UIView в качестве панели навигации.
На панели UIView есть кнопка «Назад», и я использую методы «Делегат» (я объявил протокол) для связи с контроллером представления при нажатии кнопки «Назад».
Я использую делегат в моей панели CustomNavigation.
идентификатор делегата;
и в главном контроллере вида, когда я выделяю панель навигации, я устанавливаю делегата
topBar = [[TopNavigationBar alloc] initWithFrame:CGRectMake(0, 0, 480, 40)];
topBar.lblTitle.text = @"Shop";
topBar.delegate = self;
Я освобождаю эту панель в сделке ViewControllers.
Теперь, когда я нажимаю кнопку «Назад», я использую метод делегата для вызова popViewController в главном ViewController.
//in Custom Bar
-(void)ButtonPressed {
[delegate TopNavigationBarBackButtonPressed];
}
//In View COntroller
-(void)TopNavigationBarBackButtonPressed {
[self.navigationController popViewControllerAnimated:YES];
}
Теперь ViewController открывается, и элемент управления переходит к предыдущему viewController, но dealloc не запускается ни в ViewController, ни в UIView
Что я делаю не так?