viewWillAppear вызывается только один раз - PullRequest
0 голосов
/ 18 февраля 2011

Вот сценарий, switchViewController - это представление, добавленное в главное окно. Таким образом, switchViewController является основным представлением, поэтому, если я хочу перейти к представлению B, я добавлю представление представления B, нет необходимости удалять правильное представление switchViewController? Проблема заключается в том, что после того, как я возвращаюсь из представления B в представление switchViewController, метод viewWillAppear больше не вызывается.

Почему это так?

Ответы [ 3 ]

2 голосов
/ 18 февраля 2011

viewWillAppear: не вызывается автоматически при удалении или добавлении представления в иерархию представлений.Это обязанность контроллера представления, чтобы вызвать это в нужное время.Классы встроенного контроллера представления делают это всякий раз, когда вы представляете или выдвигаете новый контроллер представления.Поскольку вы не используете этот механизм в своем приложении, метод не вызывается (если вы не вызываете его самостоятельно).

1 голос
/ 18 февраля 2011

Это потому, что оно никогда не исчезало, вы просто ставили перед ним что-то еще.Если вы хотите перемещаться от одного экрана к другому и обратно, они должны быть отдельными контроллерами представления, и вы должны использовать UINavigationController и его метод pushViewController:isAnimated:.

0 голосов
/ 18 февраля 2011

Это не вызывается, потому что вы просто изменили первый вид, а не перешли на другой.

Вы можете рассмотреть возможность встраивания своего представления в контроллер Navigation, а затем вызвать ViewB с помощью

[navigationController pushViewController:viewB animated:YES];
...