我的uinavigationbar没有显示正确的uinavigationcontroller的名称

时间:2013-02-11 12:17:49

标签: iphone uinavigationcontroller

我正在弹出所需的viewcontroller,但是uinavigationbar和uinavigationitem没有显示正确的名称,我必须单击后退按钮(uinavigationitem)才能在导航栏上看到正确的名称。

我正在使用

     YTOCalculatorViewController * parent = (YTOCalculatorViewController *)self.controller;
     [self.navigationController popToViewController:parent animated:YES];

以显示YTOCalculatorViewController。我已将此代码放在viewcontroller的viewwilldisappear中,我想从那里转到YTOCalculatorViewController,但是虽然它弹出到右侧viewcontroller,导航栏显示错误的名称,单击后退按钮后,它显示正确的名称。

例如我在堆栈上       C       乙       甲

在这种情况下,A是YTOCalculatorViewController。 当显示C时,我保存信息,我想再次显示A,以便我使用上面的代码。

如果我从A到C然后再回到C到A多次x,那么当我到达A时,我必须在后退按钮上单击x次以查看正确的uinavigationbar的名称属于A. uinavigationbar显示B视图控制器的名称,而不是显示A的名称。

对不起,如果我不够清楚,我希望你理解我的问题。

1 个答案:

答案 0 :(得分:0)

看来你正试图从自我到自我......

如果你想要弹出一个已被推动的特定控制器..假设你已按下A-> B-> C-> D,你当前正在 D 并且想要要popto B ,您应该执行以下操作

for(UIViewController *controller in [self.navigationController viewControllers]){
    if([controller isKindOfClass:[B class]]){
        [self.navigationController popToViewController:controller animated:YES];
        break;
    }

}

以上代码应该运行良好..上面的代码可能在语法上不正确,请更正。