Вызов pushViewController после presentViewController не работает

Я представляю свой контроллер представления следующим образом:

[self.navigationController presentViewController:self.thingContainerViewController animated:YES completion:nil]; //self.navigationController not nil here

Это показывает UITableView. Я хочу отправить VC в стек навигации отсюда. Но на данный момент self.navigationController равен нулю. Любая идея, как заставить это работать?

[self.navigationController pushViewController:otherContainer animated:YES]; //self.navigationController is nil at this point

person Suchi    schedule 23.07.2015    source источник
comment
Вы решили вышеуказанную проблему?? пожалуйста, поделитесь со мной   -  person Bandish Dave    schedule 13.08.2015


Ответы (2)


Вам нужно обернуть контроллер представления, который вы представляете, в контроллер навигации, чтобы иметь возможность использовать методы push и pop.

Итак, для первого шага:

UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:self.thingContainerViewController];

Потом:

[self.navigationController presentViewController:navigationController animated:YES completion:nil];

Если вы это сделаете, ваш код будет работать.

person Dima    schedule 23.07.2015
comment
Спасибо, это помогает. Однако необходимо настроить другие состояния панели навигации. В любом случае это поможет вам двигаться дальше. - person Svitlana; 30.01.2016

Свифт 3/Свифт 4

прежде всего вам нужно установить навигационный контроллер, на котором вы хотите представить. После этого выполните процесс навигации на втором контроллере представления.

  • Пример такой

       let firstPresentVC = FirstVC(nibName:"FirstVC",bundle:nil)
       let navVC = UINavigationController(rootViewController:firstPresentVC)
       navVC.isNavigationBarHidden = true
       self.present(navVC, animated: true, completion:nil)
    

Теперь вы находитесь в текущем стеке с навигацией

Вы можете нажать после этого

let secondPushVC = secondPushVC(nibName:"secondPushVC",bundle:nil)
self.navigationController?.pushViewController(secondPushVC, animated: true)
person Hardik1344    schedule 21.09.2018