gpt4 book ai didi

ios - UITabBar 在推送到新 View Controller 后消失

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:27:59 24 4
gpt4 key购买 nike

我有一个有 3 个按钮的 UITabBarController。第二个按钮指向 ViewController1,它连接到另一个名为 ViewController2 的 View 。在我点击 ViewController2 中的按钮后,我再次以编程方式呈现 ViewController1,除一件事外,它工作完美。在我“到达”ViewController1 之后,标签栏消失了。

我正在使用此方法导航回 ViewController1。 (我确实导航到它的导航 Controller ,但已经尝试过 View )

- (void)presentViewControllerAnimated:(BOOL)animated {

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"storyboard" bundle:nil];
UINavigationController *firstViewNavigationController = [storyboard instantiateViewControllerWithIdentifier:@"destination"];
[self presentViewController:firstViewNavigationController animated:animated completion:nil];
}

我这里调用第一种方法

- (void)didTapButton:(id)sender {

UIButton *button = (UIButton *)sender;

CGPoint pointInSuperview = [button.superview convertPoint:button.center toView:self.tableView];

[self presentViewControllerAnimated:YES];
}

这个方法隐藏了ViewController2中的标签栏,我已经试过了,所以没有问题。

-(BOOL)hidesBottomBarWhenPushed
{
return YES;
}

我不明白为什么会发生这种情况,我认为这是一个公平的解决方案,在我需要展示观点的时候,它运行了好几次。我读过 segues 可能会发生这种情况,但我正在使用没有 segues 的代码来做到这一点。

最佳答案

实际上您的代码工作正常。当您从 SecondViewController 呈现 FirstViewController 时,不应有标签栏。因为当您调用 instantiateViewControllerWithIdentifier 时,它基本上会创建该 View Controller 的一个新实例,当然,没有标签栏。

返回到第一个 View Controller 的正确方法是弹出 SecondViewController(或者关闭它,如果它以模态方式呈现)。所以你的最终代码应该是这样的

- (void)didTapButton:(id)sender {
// If this view controller (i.e. SecondViewController) was pushed, like in your case, then
[self.navigationController popViewControllerAnimated:YES];

// If this view controller was presented modally, then
// [self dismissViewControllerAnimated:YES completion:nil];
}

当然, Storyboard中的 View Controller 层次结构必须是这样的:

                                                                         -- UINavigationController -> FirstViewController -> SecondViewController                        | ->UITabBarController____|                        -...                        -...

关于ios - UITabBar 在推送到新 View Controller 后消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24635104/

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