OStack程序员社区-中国程序员成长平台

标题: ios - UINavigationBar 调整大小并覆盖 UIViews [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-12 22:44
标题: ios - UINavigationBar 调整大小并覆盖 UIViews

我们从 Storyboard 中实例化一个 UINavigationController 和一个 UIViewController,如下所示:

UIStoryboard *sb = [UIStoryboard storyboardWithName"AddOrder" bundle:nil];
UIViewController *vc = [sb instantiateInitialViewController];
UIViewController *topVC = ((UINavigationController *) vc).topViewController;

vc.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentViewController:vc animated:YES completion:NULL];

enter image description here

从这里看,UIViewController 似乎没有占据整个 UIWindow,它看起来像在 ios6 上一样下降了 20 分。如果仔细观察,您甚至可以在左上角看到底层 UISplitViewController 的分隔线。

问题是,当用户在 UIViewController 上的 UITableView 上点击一个选项时,我们调用 [self performSegueWithIdentifier: sender:]推送一个新的 UIViewController,但是当他们旋转它时,它看起来像这样:

enter image description here

至少可以说有点局促。 但是现在,当我们回到第一个 UIViewController 并旋转时,我们得到了这个:

enter image description here

问题是,现在已经覆盖了搜索栏。你会注意到你也看不到底层的 UISplitViewController 了。如您所见,现在 UINavigationBar 似乎覆盖了其他 20 pts,并且高度更大。

我通过调用 self.edgesForExtendedLayout = UIRectEdgeNone; 来“解决”了这个问题,但这只是将 UIView 推得很远。我还玩弄了添加 [UIViewController attemptRotationToDeviceOrientation] 但什么也没有。在 Apple 的 HIG 中,它指出导航栏不应该改变它在 iPad 上的高度,但是当我退出框架时,这发生在我身上。

有什么想法吗?



Best Answer-推荐答案


您好,您可以使用这些属性创建 View Controller enter image description here

并在应用程序窗口上添加模态

[self.view.window.rootViewController presentViewController:vc animated:YES completion:nil];

我认为您的问题将由此解决。

关于ios - UINavigationBar 调整大小并覆盖 UIViews,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24070281/






欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) Powered by Discuz! X3.4