gpt4 book ai didi

iphone - UIModalTransitionStylePartialCurl 与 UITabBarController

转载 作者:行者123 更新时间:2023-12-03 18:45:07 27 4
gpt4 key购买 nike

这个问题已经被问了很多次,例如here但据我所知,尚未得到完整答复。

我有一个 UITabBarController ,其中一个 UINavigationController 作为其中一个选项卡的根 vc,它本身有一个 MKMapView 作为其根 vc 。我想要的行为是 map 部分向上 curl ,同时将选项卡栏保留在适当的位置(类似于 map 应用程序)。

到目前为止,我所做的只是让整个 View curl ,这不太好。

我见过的解决方案是将 hidesBottomBarWhenPushed 属性设置为 NO,这很有意义,但这似乎不起作用(除非我做错了什么)。

为了清楚起见,我的代码如下:

MyVC *aView = [MyVC init];
aView.modalTransitionStyle = UIModalTransitionStylePartialCurl;
aView.hidesBottomBarWhenPushed = NO;

对于演示部分,我尝试了以下两种替代方案,但似乎都不起作用:

[self presentModalViewController:updateStatus animated:YES];
[[self navigationController] presentModalViewController:updateStatus animated:YES];

非常感谢任何帮助。

最佳答案

我在 StackOverflow(和互联网)上搜索了这个问题的解决方案。这个问题已经被问过很多次了,但正如你所注意到的,从未得到充分的回答。许多solutions如果下部工具栏是否 curl 并不重要,请给出可接受的解决方案。

Others提供了使用 UIView 动画/CoreAnimation 而不是 UIModalTransitionStylePartialCurl 作为模式转换样式的解决方案;这在最坏的情况下是 App Store 不允许的解决方案,在最好的情况下与从 UIModalTransitionStylePartialCurl 获得的效果并不完全相同(例如, curl 的形状不同)。

这些解决方案都没有提供模仿 Apple 在 map 应用中的解决方案的答案(即使用 UIModalTransitionStylePartialCurl 但在 map 底部留下未 curl 的 UIToolbar屏幕)。

我将继续这种不完整答案的传统,因为您询问了 UITabBarController 并且我的解决方案没有专门解决这种情况。然而,它确实解决了我遇到的问题,即 curl 半页,底部有一个不 curl 的工具栏。

必须有一种更优雅的方法来做到这一点,但这就是我的方法。

我的 AppDelegaterootViewControllerUIViewController 的子类,我将其称为 TAContainerViewControllerTAContainerViewController 管理 a) 屏幕的实际内容(“要 curl 的内容”)、TAContentViewController,以及 b) TAContentViewController<“后面”的内容 (例如设置),我将其称为 TAUnderCurlViewController

我的 TAContainerViewController 实例具有 TAContentViewControllerTAUnderCurlViewController 的属性。我的内容 UIViewTAContentViewControllerview 属性的 subview ;同样,用户在curl下看到的是TAUnderCurlViewControllerview属性。

TAContainerViewControllerinit 方法中,我确保执行以下操作:

    _underCurlVC.modalTransitionStyle = UIModalTransitionStylePartialCurl;

为了 curl 内容以显示在页面下方,我设置了一个调用以下代码的操作:

    [self.contentVC presentModalViewController:self.underCurlVC animated:YES];`

其中 selfTAContainerViewControllercontentVCTAContentViewController 的实例,underCurlVCTAUnderCurlViewController 的实例。

要关闭 View ,只需[self.contentVC DismissModalViewControllerAnimated:YES];

当模态视图关闭时,contentVC 的框架似乎出现了一些奇怪的情况,因此我在模态视图关闭时手动重置了框架。

我在 Github 上发布了一个包含更多详细信息的示例项目。希望有人可以将其变成一个稍微更优雅的解决方案,或者将其扩展为与 UINavigationController 或 UITabBarController 一起使用。我认为诀窍是将 View Controller 从 Cocoa 子类中明确定义的关系中拉出来,因此也许对那些特殊 View Controller 进行子类化就可以做到这一点。

关于iphone - UIModalTransitionStylePartialCurl 与 UITabBarController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6873903/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com