я могу сослаться на подпредставление по его индексу? - PullRequest
0 голосов
/ 05 августа 2010

Я отображаю модальный контроллер вида и оттуда использую кнопки для добавления подпредставлений. Мне нужно добавить другие контроллеры представления как подпредставления, а затем удалить тот, что за ним. Так можно ли ссылаться на мнения по их индексу?

Практический пример: Пользователь видит страницу 1 (корневой контроллер просмотра) Пользователь нажимает кнопку, которая добавляет подпредставление, стр. 2. Пользователь нажимает другую кнопку, которая добавляет подпредставление, страница 3. Теперь мне нужно удалить страницу 2, чтобы не использовать память и все происходило там.

Это не так просто, как удалить его по имени, потому что в моем контроллере корневого представления есть кнопки «следующий» / «назад» и кнопки для определенных видов. Я всегда могу вставить правильное «следующее» подпредставление, но удалить его может любой из них. Пользователь может находиться на странице 2, 3, 4 и т. Д. И перейти к странице 5. В действии кнопки для страницы 5 я, конечно, могу добавить контроллер представления страницы 5 в качестве подпредставления, но как мне сказать, чтобы он удалил последнее подпредставление? когда это может быть кто-нибудь из них?

Ответы [ 3 ]

1 голос
/ 05 августа 2010

Я думаю, что это можно решить при правильном использовании UINavigationController;, однако, вы всегда можете использовать [rootViewController.subviews objectAtIndex:subViewIndex];

0 голосов
/ 05 августа 2010

Root View = A;Второй вид = B;Третий вид = C;

Вы хотите перемещаться A -> B -> C - (назад)> Правильно?

, когда вы переходите от B к C, просто нажмите на кореньпросмотрите контроллер на A, а затем нажмите C, B теперь не в миксе.

Это будет работать, только если вы используете UINavigationController, но вы можете использовать ту же идею для вашей проблемы.

- для модальных: -

// Viewing B, going to go to C:
[self dismissModalViewControllerAnimated:NO]; // B is gone.
[self presentModalViewController:C animated:YES]; // C animates up
0 голосов
/ 05 августа 2010

Вы можете использовать

[[parentView subviews] objectAtIndex:n];

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

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