【发布时间】:2012-09-05 06:46:39
【问题描述】:
我正在尝试让我的应用程序正常工作,以便在根视图控制器中没有导航栏可见,并且当我将另一个视图控制器推送到我的堆栈上时(使用 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 的动画代码,展示了如何按照我的意图进行操作。
【问题讨论】:
-
您的代码非常适合我。它就像在您的视频中一样,这就是动画 = YES 发生的方式。你究竟想如何淡化你的导航栏? alpha 值?
-
我在下面编辑了我的答案并添加了淡入/淡出动画
-
使用“viewDidAppear”可能更有意义。从另一个动画中开始动画不是一个好主意。
标签: ios uinavigationcontroller uinavigationbar