iphone UINavigation Controller - PullRequest
       8

iphone UINavigation Controller

1 голос
/ 17 сентября 2010

Я пытаюсь лучше понять UINavigationController. У меня есть 3 .xibs. С .xib1 я нажимаю на .xib2. Я должен передать данные в .xib2 из .xib1.

Controller1 *selectcity = [[Controller1 alloc]initWithNibName:@"Controller1" bundle:nil];   

selectcity.item1 = @"hi";
// Push the next view onto our stack
[self.navigationController pushViewController:selectcity animated:YES];
[selectcity release];

Мне нужно передавать некоторые данные в .xib2 каждый раз, когда он открывает это представление. Перенос нового представления в стек каждый раз, когда пользователь выбирает строку в таблице, а затем нажатие назад, выбор строки, возврат назад, выбор строки назад, создает очень быстрое предупреждение о памяти и убивает приложение.

Если я добавлю вид в качестве свойства и проверю, существует ли он уже,

if (xib2 == nil) {

}

метод viewDidLoad вызывается только при первом вызове представления, поэтому я не могу передать свои данные в форму.

Я не могу использовать viewDidAppear и т. Д., Поскольку не хочу загружать данные при возврате из .xib3.

Как правильно управлять памятью в этой ситуации? Должен ли я выталкивать xib2 из стека каждый раз, когда они нажимают кнопку возврата? Так какой метод я бы сделал это?

Спасибо за любую помощь!

1 Ответ

0 голосов
/ 17 сентября 2010

Я пытаюсь стать лучше понимание UINavigationController. у меня 3 .xibs. С .xib1 я подталкиваю к .xib2. Я должен передать данные в .xib2 от .xib1.

Во-первых, вы не передаете данные между .xibs, вы передаете данные между контроллерами представления.

Мне нужно передать некоторые данные в .xib2 каждый раз, когда он открывает это представление. Нажимать каждый раз новый взгляд на стек пользователь выбирает строку в таблице, а затем нажмите назад, выбрав ряд, назад, выбор строки, назад есть создавая память предупреждая очень быстро и убивает приложение.

Пожалуйста, опубликуйте больше кода, связанного с этой проблемой. Предполагая, что вы говорите о UITableView строках, у вашего приложения не должно быть никаких проблем с перемещением / выталкиванием представлений в стек навигации в ответ на нажатия на строки.

метод viewDidLoad получает только называется первый раз, когда вид называется, поэтому я не могу передать свои данные в форма.

Опять же, вы хотите передавать данные между представлениями контроллерами , а не представлениями. Вы можете сделать это довольно легко, создавая свойства на ваших контроллерах представления, которые вы затем устанавливаете перед тем, как поместить контроллер представления в стек. Вы уже делаете это, я думаю, с вашей item1 собственностью.

Как правильно контролировать память в этой ситуации? Должна ли я быть выталкивать xib2 из стека каждый раз они нажимают кнопку назад? Это так, какой метод я бы сделал это?

Если вы используете стандартный UINavigationController для управления стеком навигации, вам не нужно ничего делать самостоятельно для управления памятью, когда пользователь нажимает кнопку «Назад»; класс UINavigationController сам позаботится о выпуске контроллеров представления.

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