gpt4 book ai didi

ios - 在 segues 之间切换 iOS 中的 UINavigationController 栏

转载 作者:行者123 更新时间:2023-12-01 19:03:49 25 4
gpt4 key购买 nike

我对iOS很陌生。我有一个带有嵌入式 UINavigationController 的 UIViewController,我通过将此代码添加到 viewDidLoad 方法来隐藏第一个 View 上的栏:

if (self) {
self.navigationController.navigationBarHidden = YES;
self.navigationItem.title = @"";
}

然后我将此 View 连接到另一个带有序列的 UIViewController(由第一个 View 上的按钮触发)并将此代码添加到它的 viewDidLoad 方法中:

if (self) self.navigationController.navigationBarHidden = NO;

一开始一切正常。当我加载应用程序时,导航栏消失了,当我导航到第二个(子) View 时,导航栏就在那里。然后当我点击后退按钮时,它会返回到第一个(父) View ,但 NavBar 又回来了。

我尝试添加命名序列“BackToMain”并添加我放置在第二个 View 中的 prepareSeque 方法:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([segue.identifier isEqualToString:@"BackToMain"]) {

UINavigationController *parentNavigationController = segue.destinationViewController;
parentNavigationController.navigationController.navigationBarHidden = YES;
}
}

但它永远不会被调用。

理想情况下,我会在父 View 中放置一个方法,以便在每次显示 NavBar 时简单地隐藏它。就像是:
- (void)processIncomingSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if (self) self.navigationController.navigationBarHidden = NO;
}

但我真的不知道这是否可能。

最佳答案

将以下代码放入您的 View Controller 中,应该 不是 有一个UINavigationBar .

- (void)viewWillAppear:(BOOL)animated
{
[self.navigationController setNavigationBarHidden:YES animated:animated];
[super viewWillAppear:animated];
}

- (void)viewWillDisappear:(BOOL)animated
{
[self.navigationController setNavigationBarHidden:NO animated:animated];
[super viewWillDisappear:animated];
}

关于ios - 在 segues 之间切换 iOS 中的 UINavigationController 栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21125567/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com