0

我从 BaseViewController 继承了我的 ViewController,并且我已经使用情节提要 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

4 回答 4

0

你应该仔细检查:

  1. 两个视图控制器都应该在同一个导航控制器堆栈上。

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

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

于 2016-05-12T05:46:19.960 回答
0

尝试使用 appDelegates 导航控制器,尝试如下:

dispatch_async(dispatch_get_main_queue(), ^{
                [self showMesssgeonAlert:@"Success"];
                [self hideProgress];
                [((AppDelegate*)[[UIApplication sharedApplication]delegate]).navigationController popViewControllerAnimated:TRUE];
            });
于 2016-05-12T06:39:24.060 回答
0

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

最后在两个视图控制器做加载方法中检查导航控制器的内存地址。它应该相同。

于 2016-05-12T05:41:36.827 回答
0

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

于 2019-04-27T08:57:58.853 回答