2011-12-12 19 views
7

Tutti i miei controller di vista estendere il mio BaseViewController: UIViewController, e in questo ho ignoratoarresto eventi del ciclo di vita iOS5 automaticamente chiamati

- (BOOL)automaticallyForwardAppearanceAndRotationMethodsToChildViewControllers { 
    return NO; 
} 

Tuttavia, iOS 5 simulatore ha deciso di ignorare questo e continua a chiamare il mio viewWillAppear metodi sulla mia gerarchia UIViewController nidificata.

Ho fatto lo stesso in un altro progetto e ha funzionato bene. C'è qualcos'altro che mi manca per farmi ascoltare?

risposta

4

venuto fuori si hanno anche per utilizzare questo metodo anche:

UIViewController addChildViewController 

Così facendo questo:

[self addChildViewController:_browserViewController]; 
[browserView addSubview:_browserViewController.view]; 
[_browserViewController didMoveToParentViewController:self]; 

..e ritorno NO da automaticallyForwardAppearanceAndRotationMethodsToChildViewControllers

... è ferma i metodi di visualizzazione del ciclo di vita vengono chiamati due volte.

+1

Quindi qual è la soluzione per realizzare qualcosa che funzioni sia in iOS 4 che in 5 – pottedmeat

+0

Bene, se stai usando iOS 4 - non avrai le chiamate automatiche ai tuoi controller di vista nidificati - quindi non hai il problema delle cose che vengono chiamate due volte. La gerarchia dei contenitori di UIViewController è stata introdotta solo in iOS 5. Le app di iOS 4 dovrebbero funzionare come sempre. Stai attento a chiamare i selettori non definiti che sono nuovi nelle versioni iOS successive. – bandejapaisa

+0

Quindi la risposta è che devi chiedere se l'istanza può rispondere ai metodi '-addChildViewController:' e '-didMoveToParentViewController:' prima di chiamarli? – pottedmeat

Problemi correlati