问题标签 [uipresentationcontroller]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
3030 浏览

ios - 如何通过点击其调光视图来关闭 UIPresentationController

我正在使用 aUIPresentationController来显示自定义模式。演示控制器在显示UIView时有一个调光视图。模态本身是UIViewController添加到演示控制器的容器中的。

问题

我只能[self dismissViewControllerAnimated:NO completion:nil]从嵌入式 UIViewController 调用。但我不能从UIPresentationController. 但这就是变暗视图的所在。

我想避免向模态添加额外的不可见视图,或者NSNotificationCenter尽可能使用。

你如何UIPresentationController通过点击它的调光视图来关闭它?是否有意义?可能吗?

0 投票
3 回答
4060 浏览

ios - 在使用过渡时替换 UIWindow 的 rootViewController,似乎正在泄漏

环境
iOS 9.2
Xcode 7.2

我希望用动画替换UIWindow 的 rootViewController ,同时也将其从视图层次结构中删除。

然后通过简单地在 AppDelegate 中启动转换

在 Instruments 中对此进行分析,请注意 rootViewController 仍在内存中。

在此处输入图像描述

还遇到了这个错误报告,这似乎表明 iOS 8.3 中存在相同的问题并且仍然打开。

无法找到任何参考资料表明作为

源视图控制器被保留(很可能由UIPresentationController?)或者如果这是一个错误。请注意,UIPresentationController 最初是在 iOS 8 中引入的。

如果这是设计使然,是否有释放源视图控制器的选项?

使用 UIPresentationController 的子类

似乎没有任何区别。无法在 SDK 中找到其他任何内容。

目前我发现的唯一方法是在进行转换之前使用 UIViewController 以及当前屏幕上的快照来代替根视图控制器。

它确实有效,但在控制台中会出现以下警告

对原始问题或警告信息的任何想法表示赞赏。

更新

我相信我已将其范围缩小到缺少版本的保留。

在此处输入图像描述

那是可能的冒犯电话。

0 投票
1 回答
4281 浏览

ios - 在不更改状态栏颜色的情况下呈现视图控制器,例如 UIAlertController

在执行一些网络操作时,我提出了一个模态视图控制器(类似于 MBProgressHUD,但作为视图控制器)来防止用户交互并指示进度。

视图控制器具有modalPresentationStyle = .Custom并使用过渡委托和自定义表示控制器进行动画处理。除了动画过渡之外,它们没有驱动演示的自定义操作。

我遇到的问题是,每当呈现视图控制器时,它会将状态栏颜色变为黑色。我可以覆盖preferredStatusBarStyle以使其始终返回.LightContent,但有时此视图控制器会显示在视图控制器上,.Default并且我也不想在那里更改它。基本上,我希望具有与UIAlertController.

显示呈现的视图控制器导致状态栏内容变暗的屏幕截图

我已经尝试配置呈现控制器以将呈现的视图控制器移出状态栏空间:

这些设置确实将显示的控制器的顶部移出状态栏,但状态栏仍然受到影响。是否有我缺少的属性会阻止我的视图控制器更新状态栏样式?

0 投票
2 回答
2121 浏览

ios - UIPresentationController——我可以在展示后更新展示的视图控制器的框架吗?

我正在使用自定义 UIPresentationController 子类来管理 UIViewController 的呈现。我正在重写- (CGRect)frameOfPresentedViewInContainerView以提供一个从 containerView 的边界插入的框架。

现在,在对presentedViewController 进行一些用户操作之后,我想更改presentViewController 的框架。我的问题是:有没有一种“自然”的方式来做到这一点?

呈现后如何调整呈现的视图控制器的框架?

0 投票
3 回答
1986 浏览

ios - 如何使用swift在子视图中居中标签

我正在尝试使用 uipresentationcontroller api 视图中的呈现来呈现报价,但它不起作用。我究竟做错了什么?另外,如何动态调整呈现视图的大小以适应文本?谢谢。

这是我的代码:

如您所见,文本已关闭 }

0 投票
1 回答
1471 浏览

ios - iPad 上的 UIPopoverPresentationController

我想在 UIPopoverPresentationController 中呈现一个 viewController,就像我们选择语言时 iOS Setting App 所做的那样。它在设备屏幕的中心呈现了一个 viewController! 在此处输入图像描述

但是,我的结果不是这样的!

在此处输入图像描述

这是我的代码:

和代表:

0 投票
1 回答
404 浏览

ios - iOS 上的自定义 UIPresentationController

我正在自定义 aUIPresentationController以将演示文稿模拟为 iOS 本机.OverCurrentContext.CurrentContext.

我发现无论我覆盖什么,presentingViewController它始终rootViewController是 UIWindow 的,有没有人知道如何使它sourceViewController(调用presentViewController:animated:completion:) 像.CurrentContext演示样式的行为一样?

还有一个奇怪的行为,该shouldPresentInFullscreen方法返回 true 或 false 没有区别。

0 投票
1 回答
256 浏览

ios - 使用带有水平紧凑 UITraitCollection 的自定义 UIPresentationController,否则会弹出一个弹出框

我有一个在通用 iOS 应用程序中展示的视图控制器。UIPresentationController在 iPhone 上,它使用自定义 UIPresentationController 显示,该控制器使用'sframeOfPresentedViewInContainerView方法调整呈现视图的框架。这工作正常,但是......

在 iPad 上,我希望相同的视图控制器在UITraitCollection具有Regular宽度时显示为弹出框,但在宽度时切换到我的自定义 UIPresentationController Compact。这是可以实现的吗?

0 投票
1 回答
750 浏览

ios - 在presentationTransitionWillBegin 中使用animateAlongsideTransition 的问题

我正在尝试使用 和 为模态呈现的视图控制器创建自UIViewControllerTransitioningDelegate定义UIViewControllerAnimatedTransitioning转换UIPresentationController

在我的呈现视图控制器中,我实现UIViewControllerTransitioningDelegate并具有以下方法:

现在,在我的子类中,UIPresentationController我在呈现的视图控制器下方添加了一个调光视图,并希望将其与外观过渡一起淡入。

有趣且令人沮丧的事情是,我呈现的视图控制器的呈现和关闭动画按预期工作并在MyAnimationController. 至于我的调光视图的淡入/淡出,它仅在关闭呈现的视图控制器时才有效。呈现它时,淡入不会与过渡一起设置动画,而只是使用固定的时间量。我很确定我根据 Apple 的文档和几个教程实现了所有内容,但由于某种原因,它根本无法按预期工作。关于这里可能出现的问题有什么建议吗?

0 投票
5 回答
3739 浏览

ios - 关闭模态呈现的视图控制器时帧不正确

我正在展示一个UIViewController使用自定义过渡和一个自定义的UIPresentationController. 视图控制器的视图不会覆盖整个屏幕,因此呈现的视图控制器仍然可见。

UIImagePickerController接下来,我在这个视图控制器上展示一个实例。问题是当我关闭图像选择器时,呈现视图控制器的框架会覆盖整个屏幕,而不仅仅是我希望它覆盖的部分。frameOfPresentedViewInContainerView我的自定义中指定的框架UIPresentationController似乎完全被忽略了。

仅当带有我的帧的图像选择器modalPresentationStyle保持UIModalPresentationOverCurrentContext完整时(这是有道理的,因为首先没有从视图层次结构中删除视图)。不幸的是,这不是我想要的。我希望图像选择器全屏显示,这 - 无论出于何种原因 - 似乎都弄乱了我的布局。有什么我可能做错或忘记的吗?有什么建议么?