Как запретить Storyboard Segue от сброса UIViewController внутри UIPopoverController - PullRequest
1 голос
/ 02 декабря 2011

Вот моя проблема.С игрой Storyboard у меня есть игра с поповером для кнопки бара.UIViewController внутри UIPopoverController требует загрузки данных с сервера.С раскадровками каждый раз, когда я закрываю всплывающее окно, представление освобождается, поэтому всякий раз, когда всплывающее окно появляется снова, оно пытается загрузить данные снова с сервера.Я не хочу такого поведения.Как я могу предотвратить сброс Storyboard контроллера представления внутри контроллера поповер?Что-то вроде того, что делает UITabBarController.UITabBarController вызывает viewDidLoad в первый раз, и для последующих переключателей вкладок вызывается viewWillAppear.

1 Ответ

4 голосов
/ 02 декабря 2011

Segue разработан так. Каждый раз, когда вы делаете segue - представление будет загружено. Если вам нужно сохранить эти данные - вы должны хранить их вне popover и использовать этот метод

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
    if ([[segue identifier] isEqualToString:@"your segue identifier"])
    {
        //get popover
        ViewController *vc = [segue destinationViewController];

        //Set popover data to vc here
    }

, который вызывает перед segue, и в этом методе устанавливает данные в popover. Если вы будете использовать его - не забудьте установить идентификатор Segue в Интерфейсном Разработчике.

...