2015-12-18 3 views
1

В моем приложении иногда pushViewController терпит неудачу без каких-либо причин, и что происходит очень странно. Изменены параметры навигации и навигации, но ViewController не нажата. Тогда я не могу нажать ничего на экране. Я нахожу, что вызывается viewWillAppear, но viewDidAppear не вызывается. Я нажимаю кнопку дома iPhone для ввода фона. После повторного ввода на передний план вызывается ViewController и вызывается viewDidAppear. Я не знаю, почему и когда это происходит.viewWillAppear вызван, но viewDidAppear не вызван после pushViewController

normal viewDidAppear callstack

viewDidAppear after enterBackground callstack

+0

Пожалуйста перепишите 'didRecieveMemoryWarning' и проверить, если этот метод вызывается, –

+0

И пожалуйста, проверьте ссылку pushedFromView все еще сохраняется? – Gihan

+0

Также проверьте, вызываете ли вы одни и те же методы в суперклассе. Подобно '[super viewWillAppear]' и '[super viewDidAppear]' в соответствующих функциях. – Vishal

ответ

0

ли ViewController, который вы проталкивается в иерархии представлений перезаписать viewWillAppear/viewDidAppear случайно без вызова [супер viewWillAppear/viewDidAppear: анимированные]?

+0

№. Каждый контроллер вида называется [super viewWillAppear/viewDidAppear: анимированный]. – zmc1213

0

Вы, вероятно, случайно вызова [супер viewDidLoad] внутри метода viewWillAppear

+0

Нет. Я проверил ... – zmc1213

-1

Вы знаете, если вы перезаписать navigationController.interactivePopGestureRecognizer.delegate и не восстановить его должным образом, эта ошибка будет появляться, слишком

0

Если вы можете Репрографические по:

  1. Try с помощью левого края попа жест, когда нет ни одного просмотра контроллеров под ним (т.е. на контроллерах зрения корня, ваш VC-Home кона troller)
  2. Попробуйте щелкнуть по любым элементам пользовательского интерфейса после этого.

Затем Отключить interactivePopGestureRecognizer когда ток ViewController является firstVC в навигационном контроллере.

- (void)viewDidAppear:(BOOL)animated 
{ 
    [super viewDidAppear:animated]; 
    self.navigationController.interactivePopGestureRecognizer.enabled = NO; 
} 

- (void)viewDidDisappear:(BOOL)animated 
{ 
    [super viewDidDisappear:animated]; 
    self.navigationController.interactivePopGestureRecognizer.enabled = YES; 
} 

ссылка: iOS App Freezes on PushViewController

0

Для любого, имеющего такой же вопрос, как и я: Проверьте все свои собственные представления, чтобы увидеть, если вы не имея бесконечный цикл layoutSubviews. Это связано с тем, что происходит между viewWillAppear и viewDidAppear.

0

В моей реализации у меня был пользовательский контроллер панели табуляции, и, по какой-то причине, viewDid Appear был пуст, поставив супер-вызов, решив его.

override func viewDidAppear(_ animated: Bool) { 
    super.viewDidAppear(animated) //was missing this line 
} 

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

  • Нет связанных вопросов^_^