[escher] Change dynamic view controller paradigm

Change-Id: I57fd41c9b9ad8a1e8b684b97fdf80ddffd71881d
This commit is contained in:
Émilie Feral
2017-05-03 10:26:44 +02:00
parent a1f3c21d9b
commit 70fc734f7b
61 changed files with 338 additions and 475 deletions

View File

@@ -9,24 +9,32 @@ DynamicViewController::DynamicViewController(Responder * parentResponder) :
}
DynamicViewController::~DynamicViewController() {
if (m_view) {
delete m_view;
m_view = nullptr;
}
assert(m_view == nullptr);
}
View * DynamicViewController::view() {
assert(m_view != nullptr);
loadViewIfNeeded();
return m_view;
}
void DynamicViewController::loadView() {
assert(m_view == nullptr);
m_view = createView();
void DynamicViewController::viewWillAppear() {
loadViewIfNeeded();
}
void DynamicViewController::unloadView() {
assert(m_view != nullptr);
delete m_view;
m_view = nullptr;
void DynamicViewController::viewDidDisappear() {
unloadViewIfNeeded();
}
void DynamicViewController::loadViewIfNeeded() {
if (m_view == nullptr) {
m_view = loadView();
assert(m_view != nullptr);
}
}
void DynamicViewController::unloadViewIfNeeded() {
if (m_view != nullptr) {
unloadView(m_view);
m_view = nullptr;
}
}