我试图让我的应用程序正常工作,以便在根视图控制器中,没有导航栏可见,并且当我将另一个视图控制器推送到我的堆栈上(使用 Storyboard segues)时,导航栏动画进入视图(淡入视图作为视图滑入视图)。
正如其他 SO 文章中所推荐的,我的根控制器中有以下内容:
- (void)viewWillAppear:(BOOL)animated
{
[self.navigationController setNavigationBarHidden:YES animated:animated];
[super viewWillAppear:animated];
}
- (void)viewWillDisappear:(BOOL)animated
{
[self.navigationController setNavigationBarHidden:NO animated:YES];
[super viewWillDisappear:animated];
}
导航栏确实出现/消失了,只是没有动画(淡入/淡出)。
我使用的是黑色半透明条,但我尝试了所有类型的条,没有区别。这是在 iPhone 应用程序上。我也尝试过模拟器和非模拟器。有任何想法吗?
我现在创建了一个视频,展示了我的应用程序正在做什么:
所以要明确一点,它正在正确地出现和消失,但它是突然发生的。我试图让它在这个过渡期间淡入/淡出。
我现在在 Xcode 4 / iOS 5.1 中添加了一个指向我的演示项目的链接:
https://www.dropbox.com/sh/mwsgjyup4iumy2r/QNN7xkHXSt
更新/回答:最终结果证明我的代码正在“工作”,因为它正在按照 Apple 的意图进行操作,动画导航栏滑入视图。我的错误印象是它也应该同时将导航栏从不可见淡化为可见,但这不是它的工作原理。
感谢@E。Lüders 的动画代码,展示了如何按照我的意图进行操作。