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