У меня проблема с UINavigationController.
У меня есть приложение с тремя контроллерами представления, между которыми я переключаюсь, используя функциональность push и pop навигационных контроллеров.
Проблема заключается в следующем:
Я стою в контроллере третьего вида и звоню
[self.navigationController popToRootViewControllerAnimated: YES];
это приводит меня к первому контроллеру вида (что именно то, что я хочу), но когда я затем пытаюсь перейти ко второму контроллеру вида, я по какой-то причине оказываюсь в третьем.
Можно ли как-нибудь сбросить навигационный контроллер или я делаю это неправильно?
Вот код, который я использую, чтобы нажать и выдвинуть контроллер навигации:
Следующий код вызывается в корневом контроллере представления, когда пользователь решает запустить камеру.
if(self.cameraViewController == nil)
{
CollageCameraViewController *camView = [[CollageCameraViewController alloc] init];//WithNibName:nil bundle:[NSBundle mainBundle]];
self.cameraViewController = camView;
[camView release];
}
[self.navigationController pushViewController:self.cameraViewController animated:NO];
Следующий код вызывается из CollageCameraViewController (секунда) после того, как пользователь сделал свои фотографии:
if(self.renderView == nil)
{
CollageRenderViewController *renderViewController = [[CollageRenderViewController alloc] initWithNibName:nil bundle:[NSBundle mainBundle]];
self.renderView = renderViewController;
[renderViewController release];
}
[self.navigationController pushViewController:self.renderView animated:YES];
Следующий код вызывается из CollageRenderViewController, когда пользователь решает вернуться к основному (корневому) представлению:
[self.navigationController popToRootViewControllerAnimated:YES];
Теперь, если я попытаюсь снова нажать CollageCameraViewController, то вместо этого я попаду в CollageRenderViewController, почему это так?
Ура,
Andreas