在 iOS 7 中更新导航栏而不更改视图

Posted

技术标签:

【中文标题】在 iOS 7 中更新导航栏而不更改视图【英文标题】:Update Navigation Bar Without Changing View in iOS 7 【发布时间】:2014-03-07 21:44:05 【问题描述】:

我有一个带有导航视图控制器的常规主从应用程序,但是,在最低级别的视图控制器上,当用户选择它时,我想在同一视图中显示内容,但仍然更新导航栏,就像推送了一个新的 View Controller。

例如在日历应用程序中,当用户按下返回时,它会缩小到月/年视图,但看起来并没有改变视图控制器。

实现这一点的最佳方法是什么。当用户选择内容时,新内容会放大到全视图,因此用户不会对返回按钮的功能产生混淆。

我研究过使用 pushNavigationItem,但这在导航视图控制器中不起作用...

谢谢!

【问题讨论】:

【参考方案1】:

为了记录,这就是我所做的......

注意:适用于常见情况,这种技术可能会诱使您偏离 Apple 的人机界面指南。

• 在 UINavigationViewController 之上添加了一个 UIView

[[UIApplication sharedApplication].delegate.window addSubview:customView];

• 在新视图中,我放置了一个 UINavigationBar,它被配置为看起来与 UINavigationViewController 的导航栏相同(包括后退按钮!)

[navBar pushNavigationItem:item1 animated:NO]; // This item becomes the back button
[navBar pushNavigationItem:item2 animated:NO]; 

• 然后您可以无缝地为新导航栏设置动画

【讨论】:

以上是关于在 iOS 7 中更新导航栏而不更改视图的主要内容,如果未能解决你的问题,请参考以下文章

滚动时隐藏导航栏而不隐藏状态栏及其背景

隐藏导航栏而不移动scrollView

在移动浏览器上隐藏地址/导航栏而不需要滚动内容?

如何在标签栏而不是导航栏上显示视图?

如何使用导航栏在模态视图中更改iOS 7中的UIStatusBarStyle?

如何在带有导航栏的模态视图中更改 iOS 7 中的 UIStatusBarStyle?