iphone - кэшированные UIViewControllers? - PullRequest
0 голосов
/ 15 января 2012

Я должен представить 4 контроллера вида в последовательности.Одно является продолжением другого.Они представлены навигационным контроллером.

A> B> C> D

Если я иду к A, затем к B, затем к C и возвращаюсь к B, когда я возвращаюсь к C, во второй раз он появляется быстрее.Я предполагаю, что все C кэшируются или хранятся как-то.Проблема заключается в том, что, например, C вызывает UIImagePickerController при первом входе, но не второй.Почему?

UIImagePickerController представлен внутри viewDidLoad в C в виде строки

[self.navigationController presentModalViewController: picker animated: YES];

, но, очевидно, если C - этобудучи «кэшированным» viewDidLoad не запустится во второй раз, и именно поэтому средство выбора не вызывается, за исключением первого раза.

Мне нравится идея кэшированного VC, потому что он чертовски быстр, чтобы идти вперед и назад, но где я должен поставить вызов сборщику, чтобы он вызывался правильно?Я думал, что это будет viewWillAppear, но я попробовал это, и этот метод никогда не вызывается.

Есть идеи?спасибо

Ответы [ 2 ]

1 голос
/ 15 января 2012

Нет такого кэширования, которое бы пропускало вызов viewDidLoad. Вы всегда можете установить точку останова и посмотреть, будет ли она вызываться или нет.

1 голос
/ 15 января 2012

Перепроверьте viewDidAppear:. Это правильное место для кода, который вы описываете. Если он не вызывается, это говорит о том, что вы делаете что-то еще неправильно или используете неверную сигнатуру для метода.

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