popViewController无法在iOS 9中运行

时间:2016-05-12 05:29:38

标签: ios objective-c iphone popviewcontrolleranimated

我从BaseViewController继承了我的ViewController,并且我使用storyboard ID推送了我的SecondViewController。但是,当我尝试从第二个视图查看控制器时,它无法正常工作。 这是我的代码:

dispatch_async(dispatch_get_main_queue(), ^{
                [self showMesssgeonAlert:@"Success"];
                [self hideProgress];
                [self.navigationController popViewControllerAnimated:TRUE];
            });

即使我尝试过:

NSArray *controllerArray = self.navigationController.viewControllers;

for (id controller in controllerArray)
{
    if ([controller isKindOfClass:[ViewController class]])
    {
[self.navigationController popViewControllerAnimated:TRUE];
    }
}

但是,它在两种情况下都不起作用。我该怎么办?请帮助我。

4 个答案:

答案 0 :(得分:0)

确保你在ViewController上推动控制器SecondViewController,如果你正在使用segue,那么检查show类型(Push,Present Modally)。如果这是正确的,那么检查导航控制器对象,它应该有一个对象。

最后检查两个视图控制器中导航控制器的内存地址是否加载方法。它应该是一样的。

答案 1 :(得分:0)

你应该仔细检查:

  1. 两个视图控制器都应位于相同的导航控制器堆栈上。

  2. 我猜,第二个视图控制器在不同的导航控制器上。

  3. 你如何推动第二视图控制器?

答案 2 :(得分:0)

尝试使用appDelegates导航控制器,请尝试以下操作:

dispatch_async(dispatch_get_main_queue(), ^{
                [self showMesssgeonAlert:@"Success"];
                [self hideProgress];
                [((AppDelegate*)[[UIApplication sharedApplication]delegate]).navigationController popViewControllerAnimated:TRUE];
            });

答案 3 :(得分:0)

拆分视图控制器可能会导致此问题,就我而言,我将其删除,popViewController开始工作。