我正在使用导航栏,我根据用户选择的内容推送多个视图。现在我需要从第三个控制器弹出第一个视图控制器。应用程序弹出到第一个视图控制器,但navigationItems没有被更改为它在第二个视图控制器,但我需要更改navigationItems。
我使用的代码:appdelagte.h
Bool isDelete;
@property(nonatomic)Bool isDelete;
appDelegate.m
@synthesize isDelete;
thirdViewController:
-(void)viewWillAppear:(Bool)animated {
appDelegate.isDelete=YES;
[self.navigationController popViewControllerAnimated:YES];
}
secondViewController.m
-(void)viewWillAppear:(Bool)animated {
if(appDelegate.isDelete==YES)
{
[self.navigationController popViewControllerAnimated:YES];
}
}
这里弹出到第一个视图控制器但导航项目没有被改变,因为它在secon视图控制器中
任何人都帮我解决这个问题。谢谢。
答案 0 :(得分:8)
可能是你可以在不显示第三个ctrl的情况下执行此操作吗?就像这样做,在第二个ctrl中检查if(appDelegate.isDelete==YES)
。
- (void) showThird {
if(appDelegate.isDelete == NO) {
MyThirdCtrlClss *ctrl = [[MyThirdCtrlClss alloc] init];
[self.navigationController pushViewController:ctrl animated:YES];
[crel release];
} else {
[self.navigationController popToRootViewControllerAnimated:YES];
}
}