Ios 弹出视图控制器会导致栏按钮项消失

Ios 弹出视图控制器会导致栏按钮项消失,ios,objective-c,uiviewcontroller,Ios,Objective C,Uiviewcontroller,我的应用程序中有两个视图控制器。第一个视图控制器(例如,视图控制器)有一个条形按钮项,它在表视图中有一个幻灯片(与问题无关)。我已禁用第二个ViewController中的导航栏(例如,ViewController两个),并添加了自定义视图和按钮。我已经写了代码来弹出ViewControllerTwo中的按钮动作。但是一旦它被弹出,视图控制器中的按钮项就会消失。 以下是我在ViewControllerTwo中编写的代码 [self.navigationController setNavigati

我的应用程序中有两个视图控制器。第一个视图控制器(例如,视图控制器)有一个条形按钮项,它在表视图中有一个幻灯片(与问题无关)。我已禁用第二个ViewController中的导航栏(例如,ViewController两个),并添加了自定义视图和按钮。我已经写了代码来弹出ViewControllerTwo中的按钮动作。但是一旦它被弹出,视图控制器中的按钮项就会消失。 以下是我在ViewControllerTwo中编写的代码

[self.navigationController setNavigationBarHidden:YES animated:YES];


你知道为什么酒吧按钮会因此消失吗?我确信这段代码就是原因,因为当我删除它时,默认的导航栏可以正常运行。但是我需要为我的项目自定义一个导航栏,在第一个Viewcontroller中添加以下行

-(void)viewWillAppear:(BOOL)animated{

[super viewWillAppear:animated];

[self.navigationController setNavigationBarHidden:NO animated:YES];
}

在每个视图控制器中,如果需要导航栏,请处理此问题。当我在当前视图控制器的“隐藏”部分中进行编码时,为什么上一个视图控制器的导航栏会消失?视图上的
(BOOL)animated
参数将显示为:animated。更改选项卡时,它将显示为
,因为动画是即时的。另一方面,如果使用
动画:YES
将其从导航堆栈中推送或弹出,则它将显示为
YES
。虽然这看起来像一个黑客,但它是正确的方式:你不需要找出谁是调用方,相反,关注这样一个事实:如果你的视图控制器将显示动画,你有时间做自己的动画,如果没有,去他妈的,立即显示(或者在本例中,隐藏)所有内容
-(void)viewWillAppear:(BOOL)animated{

[super viewWillAppear:animated];

[self.navigationController setNavigationBarHidden:NO animated:YES];
}