панель инструментов iphone, показывающая вид - PullRequest
0 голосов
/ 18 ноября 2011

хорошо, я не могу найти метод, вызванный UIViewController, который представляет новое представление.

У меня есть приложение, основанное на UINavigationController.Как только я прихожу к представлению, показывающему детали объекта, у меня внизу появляется 1 панель инструментов, чтобы я мог дать некоторые опции пользователю.Когда он нажимает на barButtomItem, я хочу показать новый вид, но не изменяя панель навигации, поэтому, если я нажимаю кнопку «Назад», он возвращается из подробного вида, а не из новой опции.

Я знаю метод pushViewController, но неработай как я хочу.

спасибо заранее!

edit: просто чтобы быть более понятным, если я вызову [[self navigationController] pushViewController: loteCompraViewController animated: YES];я получаю новый вид, связанный с новым контроллером, но он также меняет панель навигации, и это мне не подходит.

1 Ответ

0 голосов
/ 19 ноября 2011

Дайте вашему контроллеру представления «представление, показывающее детали объекта» двумя способами: isShowingOverlayView и dismissOverlayView. В isShowingOverlayView верните YES, если вы показываете «новый вид», потому что «он нажимает на barButtomItem». В dismissOverlayView скрыть «новый вид».

Затем создайте свой собственный подкласс UINavigationController. В вашем подклассе переопределите popViewControllerAnimated:, чтобы использовать эти методы контроллера представления деталей объекта, например:

- (UIViewController *)popViewControllerAnimated:(BOOL)animated
{
    if ([self.topViewController respondsToSelector:@selector(isShowingOverlayView)]
        && [(id)self.topViewController isShowingOverlayView])
    {
        [(id)self.topViewController dismissOverlayView];
        return nil;
    } else {
        return [super popViewControllerAnimated:YES];
    }
}

Используйте этот подкласс вместо стандартного UINavigationController.

...