Search code examples
iosuiviewcontrolleruinavigationcontrollerpushviewcontroller

Is it possible to push a View Controller with a completion block?


UINavigationController's documentation contains no pushViewController methods with a completion: parameter.


Solution

  • I would go with @justMartin's answer . But below is another approach.

    push animation take 0.3 seconds.So, if you want to run some function here after completion use performSelector after 0.3 seconds of delay.

    [self performSelector:@selector(completedPushing:) withObject:nil afterDelay:.3];
    

    OR
    After pushing the new viewController onto navigation stack,the old viewController view is removed from view hierarchy.so this results in call of viewDidDisappear on old ViewController.You can write your completion code there. don't forget to call super at some point of implementation of viewDidDisappear.