2015-09-16 2 views
0

Я использую раскрывающееся меню, хочу добиться такого же поведения, как панель вкладок. Например, я хочу переключать vc1, vc2, vc3 в любое время и сохранять исходные данные. Я использую willMoveToParentViewController.viewDidDisappear никогда не вызывается в настраиваемой вкладке

func didSelectItem(indexPath: Int){ 
    // Initialize View controllers 
    switch(indexPath){ 
    case 1: 
     self.removeFromParentViewController() 
     vc1.title = "Learning Stories" 
     self.addChildViewController(vc1) 
     self.view.addSubview(vc1.view) 
      vc1.willMoveToParentViewController(self) 

    case 2: 
     self.removeFromParentViewController() 
     vc2.title = "Group Stories" 
     self.addChildViewController(vc2) 
     self.view.addSubview(vc2.view) 
     vc2.willMoveToParentViewController(self) 


    default: 
     self.removeFromParentViewController() 
     self.addChildViewController(vc3) 
     self.view.addSubview(vc3.view) 
     vc3.willMoveToParentViewController(self) 
    } 
} 

но в VC2 и VC3, viewDidappear вызывается только один раз, и viewDIdappear никогда не дозвонились. Я знаю, что он должен работать только на поп, подарок и т. Д., Но как работает панель вкладок? для сохранения данных при переключении каждого диспетчера представлений.

ответ

0

вы обходите материал жизненного цикла просмотра, добавляя вид/vc, как будто кажется, что, поскольку они действительно уходят, вы никогда не удаляете другие 2 диспетчера представлений, когда вы переходите на другой, как он выглядит. Так что технически все они добавляются в один и тот же вид, но каждый раз, когда вы вызываете addSubview, вы просто просматриваете представление и помещаете его поверх других. Несмотря на то, что они не видны, они вообще не ушли, и почему он не звонил viewDidDisappear

+0

Как сделать его похожим на панель вкладок, заменяя каждый vc и сохраняя данные. Похоже, если я буду делать это, это будет стоить больше памяти? – Magrider

+0

в каждом из ваших случаев, вам нужен какой-то код, чтобы убедиться, что остальные 2 vc удалены, просто экспериментируйте немного. – Fonix

+0

Все, что я нашел, это о контроллере панели навигации и навигационном контроллере. Что мне нужно? Что-то подобное с tabbar. A -> B или A-> C, C-> A и т. Д. И сохраняйте данные. Если я удалю другие 2vc, как я могу сохранить данные? – Magrider

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