ViewDidAppear / ViewWillAppear не вызывается - PullRequest
5 голосов
/ 18 октября 2010

У меня есть ViewController, который добавляет к другим подпредставлениям, которые имеют подклассы uiviewControllers

, вот так:

mainViewController
       |
  v---------v
subVC1   subVC2

И ни в subVC1, ни в subVC2 не запускаются viewDidAppear / viewWillAppear?Контроллер основного представления создается в делегате приложения, и он также добавляется в окно.

Вот проект xcode, показывающий мою проблему: http://www.qfpost.com/download.do?get=92f03538907e72665ea794d98ff8392b

Ответы [ 2 ]

5 голосов
/ 18 октября 2010

Я посмотрел ваш код. Таким образом, проблема в том, что viewWillAppear / viewDidAppear вызывается при добавлении представления в окно, а не в одно из его подпредставлений. Возможно, вы захотите использовать viewDidLoad для этого.

1 голос
/ 18 октября 2010

Во-первых, вы уверены, что вам действительно нужно делать то, что вы делаете с этой иерархией UIViewControllers? Почему ваш MainViewController не может работать с представлениями, за которые отвечают ваши subVC1 и subVC2?

Во-вторых, ваш viewWillAppear / viewDidAppear будет вызван, когда вы напишите код для вызова их из вашего MainViewController. Не зная ничего о вашем дизайне, на самом деле не возможно посоветовать, когда вам следует вызывать их, но если представления субконтроллеров должны быть всегда видимыми, когда видно «основное» представление, то, вероятно, имеет смысл вызывать их из методов viewWillAppear / viewDidAppear вашего mainViewController.

...