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

У меня есть корневой UIViewController, у которого есть свойство, называемое webView. WebView - это UIViewController с XIB, который содержит UIWebView. Из моего корневого представления я модально (есть ли другой способ?) Загрузить WebView ViewController и установить его URL, всегда на одну и ту же страницу.

Я обнаружил, что если после загрузки webView я использовал его веб-страницу по умолчанию для перехода на другую веб-страницу, а затем закрыл webView и вернулся к корневому контроллеру - И ТОГДА снова открыл webView, то webView не показывая страницу по умолчанию, а скорее страницу, на которую я перешел, что означает, что WebView ViewController никогда не был уничтожен и удален из памяти. Это кажется мне очень плохим.

Так что в корневом ViewController я добавил этот код под viewWillAppear: animated -

if (self.webView != nil) {
    self.webView = nil)
}

Этого достаточно? Есть ли лучший способ?

1 Ответ

0 голосов
/ 05 апреля 2010

У меня есть корневой UIViewController, который имеет свойство, называемое webView. WebView UIViewController с XIB, который содержит UIWebView.

Во-первых, предложение стиля. Не называйте свои классы контроллера представления FooView. Назовите их FooViewController. Потому что это то, что они есть. Контроллеры. Не Просмотров.

Из моего корневого представления я модально (есть любой другой способ?) загрузить веб-представление ViewController и установите его URL, всегда на ту же страницу.

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

Если вы представляете контроллер представления модально, вы должны использовать шаблон делегата, а "родительский" контроллер представления отклоняет его модально, когда вы хотите, чтобы он исчез.

Ответ, который я дал здесь:

Всплывающее модальное окно с UITableView на iPhone

Довольно близко к коду, который вам нужен, за исключением того, что вы, вероятно, просто захотите иметь более простой протокол делегирования, такой как:

@protocol FooViewControllerDelegate <NSObject>
- (void)fooViewControllerDidFinish:(FooViewController*)fooViewController;
@end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...