从第三个视图控制器弹出到第一个视图控制器(根视图控制器)navigationItems没有被更改

Ran*_*ani 1 objective-c uinavigationcontroller

我正在使用导航栏,我根据用户选择的方式推送多个视图.现在我需要从第三个控制器弹出到第一个视图控制器.应用程序弹出到第一个视图控制器但导航项目没有被更改,因为它在第二个查看控制器,但我需要更改navigationItems.

我使用的代码:appdelagte.h

Bool isDelete;
@property(nonatomic)Bool isDelete;
Run Code Online (Sandbox Code Playgroud)

appDelegate.m

@synthesize isDelete;
Run Code Online (Sandbox Code Playgroud)

thirdViewController:

-(void)viewWillAppear:(Bool)animated {
  appDelegate.isDelete=YES;
  [self.navigationController popViewControllerAnimated:YES];
}
Run Code Online (Sandbox Code Playgroud)

secondViewController.m

-(void)viewWillAppear:(Bool)animated {
    if(appDelegate.isDelete==YES)
    {
        [self.navigationController popViewControllerAnimated:YES];
    }
}
Run Code Online (Sandbox Code Playgroud)

这里弹出到第一个视图控制器,但navItems没有被改变,因为它在secon视图控制器中

任何人都帮我解决这个问题.谢谢.

Ski*_*kie 8

可能是你可以做这个行为而不显示第三个ctrl?像这样检查if(appDelegate.isDelete==YES)第二个ctrl.

- (void) showThird {
    if(appDelegate.isDelete == NO) {
        MyThirdCtrlClss *ctrl = [[MyThirdCtrlClss alloc] init];
        [self.navigationController pushViewController:ctrl animated:YES];
        [crel release];
    } else {
        [self.navigationController popToRootViewControllerAnimated:YES];
    }
}
Run Code Online (Sandbox Code Playgroud)