Контроллер навигации в iOS 5 - как настроить действие кнопки «Назад» (сохранение состояния перед возвратом) - PullRequest
1 голос
/ 16 декабря 2011

У меня есть контроллер навигации, который я создал в раскадровке. Функции перемотки вперед и назад работают нормально ... Часть, с которой я борюсь, это то, как я могу сохранить состояние приложения при нажатии кнопки «Назад». Можно ли как-то уведомить мой текущий контроллер вида при нажатии кнопки «Назад»?

Как я могу использовать viewWillDisappear в этом случае:

    ReaderViewController *readerViewController = [[ReaderViewController alloc] initWithReaderDocument:document];
    readerViewController.title = model.title;
    readerViewController.delegate = self;
    [self.navigationController pushViewController:readerViewController animated:YES];
    [readerViewController release];

(я использую библиотеку для чтения PDF)

1 Ответ

3 голосов
/ 16 декабря 2011

Хорошо, контроллер представления, который находится на вершине стека (в настоящее время на экране), получит сообщения viewWillDisappear: и viewDidDisappear:.

viewWillDisappear: - хорошее место для сохранения чего угодно.пользователь, возможно, редактировал или манипулировал на этом экране.

Редактировать для решения вопроса о вашем последующем:

Поэтому, когда пользователь нажимает «назад», вы получаете эти сообщения(Я собираюсь назвать нынешний контроллер представления rootViewController)

  1. readerViewController получит viewWillDisappear:
  2. rootViewController получит viewWillAppear:
  3. readerViewController получит viewDidDisappear:
  4. rootViewController получит viewDidAppear:

Поэтому, если у вас есть доступ к источнику ReaderViewController, вы можете добавлять / редактировать методы для этих событий.Вы также можете установить делегата на контроллере навигации, и этот делегат будет получать navigationController:willShowViewController:animated: и navigationController:didShowViewController:animated:, когда пользователь возвращается.

Но если вы расскажете нам больше об этом "ReaderViewController", возможно, он имеетделегировать методы, которые вы можете реализовать, чтобы сохранить любое состояние, которым оно манипулирует.Что это за библиотека для чтения PDF?И в каком состоянии вы пытаетесь спасти?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...