Для UItableViewController, загруженного из IB, куда поместить код инициализации, не связанный с view - PullRequest
0 голосов
/ 07 января 2012

Название в значительной степени говорит об этом.

У меня есть UITableViewController. У меня есть несколько массивов, которые я хочу инициализировать. Это никак не связано с какими-либо взглядами. Просто чистые данные бэкэнда. Куда мне их положить?

Я не хочу помещать их в viewDidLoad, так как каждый раз, когда возникает проблема с памятью, представление будет выгружено. И нет необходимости выполнять эту инициализацию каждый раз при загрузке представления.

Очевидно, не viewWillAppear.

Другие места, которые я пробовал, были initWithCoder и awakeFromNib.

Однако то, что я заметил, было, если у меня есть tabBarController с каждой вкладкой, имеющей UItableviewController, при первой загрузке приложения, хотя выбранная вкладка является первой, awakeFromNib и initWithCoder вызывается для всех других вкладок.

Я не хотел этого, потому что инициализация могла быть отложена до первого выбора вкладки.

Пожалуйста, сообщите.

1 Ответ

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

Для комбинации поведения, которую вы ищете, я думаю, что решение состоит в том, чтобы выполнить вашу инициализацию в -viewDidLoad, откладывая ее как можно позже, но сделайте это условно, чтобы вы не реинициализировали свои массивы при перезагрузке контроллера его вид.

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