gpt4 book ai didi

objective-c - TabBar躲起来了,怎么问都不想回来……

转载 作者:搜寻专家 更新时间:2023-10-30 19:51:03 25 4
gpt4 key购买 nike

我遇到了很多人以前在这里遇到过的问题,但是随着新的 iOS 版本的出现和 API 的变化,它的解决方案会随着时间的推移而发生变化。以前的解决方案都不适用于我目前的设置 - XCode 4.2.1、iPhone 模拟器 5.0 或真正的 iPhone 5.0,应用程序以 iOS5 为目标,使用 ARC 和 Storyboard。

我有一个经典的选项卡式应用程序 - 即 UITabBarController,其中有 4 个选项卡......忽略第 2 到第 4 个选项卡......第一个选项卡托管一个 UINavigationController,其 Root View Controller 是一个 UITableViewController。现在我将 1 CustomUIViewController 插入堆栈。

整个设置在 Storyboard 中可视化设计,推送由 segue 完成。

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
self.hidesBottomBarWhenPushed = YES;
}

这有效地隐藏了标签栏,就像 iPod 应用程序在 iPhone 中所做的一样。

但是当我从堆栈中弹出 CustomUIViewController 时,TabBar 不会返回。我把

self.hidesBottomBarWhenPushed = NO;

到所有可能和不可能的地方,但没有运气。

如何恢复我的 TabBar?

最佳答案

这是一个总结性的答案,旨在为 future 的读者提供一个清晰可读的解决方案,并明确地表述一些相关问题。


问题的解决方法如下

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
[segue.destinationViewController setHidesBottomBarWhenPushed:YES];
}

问题/困惑在于,在 prepareForSegue: 方法中,可以在源 View Controller (我们现在看到的那个)或目标 View Controller 上设置属性“hidesBottomBarWhenPushed”(被插入堆栈的那个)。无论哪种方式设置,您都可以解决问题的前半部分。你的 TabBar 被隐藏了。这就是为什么我以前的代码中的“隐藏”部分起作用的原因,我在源 View Controller 上设置属性。在我的代码中

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
self.hidesBottomBarWhenPushed = YES;
}

这里,“self”指向源 View Controller ,而不是目标 View Controller 。所以我们必须将其设置为目标 View Controller ...

最后一个问题 .. 这个带点符号的代码不起作用>

segue.destinationViewController.setHidesBottomBarWhenPushed = YES;

你不能像这样调用setter方法

[segue.destinationViewController setHidesBottomBarWhenPushed:YES];

解决方案完全符合 Apple 规范,即“底部栏保持隐藏状态,直到 View Controller (将隐藏属性设置为 YES) 从堆栈中弹出。”

最后,不要忘记将 hide 属性的设置缩小到特定的 segue

-(void)prepareForSegue:(UIStoryboardSegue *)segue 
sender:(id)sender
{
if ([segue.identifier isEqualToString:@"SegueIdentifier"])
{
[segue.destinationViewController setHidesBottomBarWhenPushed:YES];
}
}

我将奖励分给两个用户(赏金给 Ash Furrow,接受的解决方案给 Eric Lars0n,这是我在阅读关于赏金和接受的规则后最接近的)他们都帮助我解决了这个问题,+ 一个小在他们受人尊敬的主题中评论原因。

关于objective-c - TabBar躲起来了,怎么问都不想回来……,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8532743/

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