1

После добавления вида по методу pushViewController в панели навигации появится кнопка «Назад», чтобы отобразить представление со стека. Однако, похоже, что iOS не уничтожит представление после того, как вытащил его из стека, и когда он будет уничтожен? Можем ли мы уничтожить его вручную, когда вы выходите из вида?Как уничтожить представление, которое добавлено pushViewController?

ответ

2

Вообще картина выглядит так:

- (void)pushSomeViewControllerOnStack 
{ 
    SomeViewController* someViewController = [[SomeViewController alloc] initWithNibName:@"SomeView" bundle:nil]; 
    [self.navigationController pushViewController:someViewController animated:YES]; 
    [someViewController release]; 
} 

Другими словами, контроллер навигации будет делать свой собственный retain контроллера вида, который означает, что вы также потребность в release это самостоятельно, так как есть более init. Контроллер навигации также позаботится о том, чтобы освободить этот контроллер, когда это необходимо.

+0

спасибо Shaggy Frog, но моя проблема заключается в том, что теперь открывается только механизм автоматической автоопределения системы, могу ли я выпустить его вручную при появлении представления? – Kelvin

+0

Контроллеры первого взгляда - это то, что выталкивается из стека, а не из представлений. Во-вторых, диспетчеры просмотра позаботятся о выпуске своего соответствующего вида; вы не должны беспокоиться о том, чтобы выпускать представления так, как вы описываете. –

1

Вы должны реализовать методы viewDidUnload и dealloc в рамках ваших подклассов UIViewController.

Когда UINavigationController выталкивает контроллер вида со своего стека, код в этих методах будет выполнен.

Вы должны прочитать View Controller Programming Guide for iOS: Navigation Controllers документацию из библиотеки IOS разработчиков Apple, а также эталонный класс документации для UINavigationController и UIViewController классов, так что вы будете лучше понимать вид контроллера жизненного цикла и что ожидать, когда происходят различные события приложения.

Смежные вопросы