【发布时间】:2014-11-10 01:59:57
【问题描述】:
各位开发者,
我很惊讶我没有找到有关 iOS 8 特定用例的任何信息。让我解释一下,我有一个导航控制器堆栈,当用户单击一个单元格时,第一个视图隐藏了它的导航栏推送了一个新视图,我需要此视图上显示的导航栏返回(显然)。在 iOS 7 上,只需在 viewWillAppear 中添加这一行:
[self.navigationController setNavigationBarHidden:NO animated:YES];
它就像一个魅力。但从 iOS 8 开始,我一直在努力实现相同的行为。现在我设法通过使用:
- (void)viewDidLayoutSubviews {
[super viewDidLayoutSubviews];
if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"8.0"))
[self.navigationController setNavigationBarHidden:NO animated:NO];
}
- (void)viewDidLoad {
[super viewDidLoad];
if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"8.0")) {
self.automaticallyAdjustsScrollViewInsets = NO;
self.edgesForExtendedLayout = UIRectEdgeNone;
self.collectionView.contentInset = UIEdgeInsetsMake(self.navigationController.navigationBar.frame.size.height, 0, 0, 0);
} }
并更改我的 collectionsView / tableviews 的 contentInset 我需要显示的任何内容。它会起作用,但在 * 中确实很痛苦(如果用户来自新的视图控制器,有时内容插入不是必需的)。
就上下文而言,该项目最初是为处理 iOS 6 和 7 而开发的,因此没有情节提要,一切都是以编程方式完成的。我将应用程序移植到更现代的代码库并使其具有通用性。
我错过了什么吗?在 iOS 7/8 中是否有更好的处理方法?
【问题讨论】:
-
我们遇到了同样的问题。不过,iOS 8.1 似乎已经解决了这个问题。
-
我在 iOS 8 中遇到了与 UIPageViewController 类似的问题。如果您有任何关于问题的建议,请告诉我。您可以在下面访问我的问题线程。 stackoverflow.com/questions/27420396/…
标签: ios ios7 uinavigationcontroller uinavigationbar ios8