问题标签 [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 投票
1 回答
465 浏览

ios - 在过渡代表中呈现控制器是零

我目前正在尝试使用UIPresentationController. 我的问题是,当我的自定义转换委托调用时

我的呈现控制器nil导致它抛出异常。我从嵌入在标签栏控制器中的导航控制器中的视图控制器中呈现它。我也尝试从这些控制器中将其呈现给相同的问题。当没有自定义模式演示时,它也可以正常工作,但我的目标是自定义它。我在选择按钮时调用它,代码如下所示。mapTransitionDelegate是我保留在类属性中的自定义转换委托。此外,EnlargedMapViewController()初始化为具有自定义模式表示,以便调用我的转换委托。

我很想了解为什么会在未来的知识中出现这个问题。到目前为止,UIPresentationController由于这个异常,我的子类甚至没有被初始化。

0 投票
2 回答
3400 浏览

ios - Swift - UITableView editActionsForRowAtIndexPath open UIPresentationController when click Edit

Hi is there any way to open an UIPresentationController when swipe left is triggered and it's click Edit ?

0 投票
1 回答
459 浏览

ios - 自定义模态转换关闭动画运行不同步

我一直在努力实现一个自定义模态转换,它使用UIPresentationController子类在演示和关闭期间创建和操作附加视图。Apple 在文档中提供了一个如何执行此操作的示例,但我遇到了障碍。

呈现模态时,我的自定义视图动画效果很好,但是当我关闭模态时,应用到自定义视图dismissalTransitionWillBegin的动画与我从animationControllerForDismissedController:. 具体来说,自定义视图的动画忽略了过渡动画的持续时间,并且总是非常快速地播放(持续时间似乎在 0.2 秒左右)。

什么可能导致animateAlongsideTransition:completion:忽略基本动画的持续时间?

0 投票
1 回答
2529 浏览

ios8 - 当另一个视图控制器显示在它上面时,UIPresentationController 会改变大小

我正在使用 UIPresentationController 展示一个模态视图控制器。我使用以下方法将presentView的框架设置为小于containView的边界:

到目前为止,一切都很好。

现在,我在当前显示的模态视图控制器之上以模态方式(默认不是自定义)呈现另一个视图控制器,它占据了整个屏幕。因此,我在覆盖整个屏幕的默认模态视图控制器下方有一个自定义模态视图控制器。

问题是当我关闭覆盖整个屏幕的顶视图控制器时,我的自定义视图控制器也会显示覆盖整个屏幕。我希望我的自定义视图控制器的大小保持不变(小于 containerView)。有什么办法可以做到这一点。

任何帮助,将不胜感激

0 投票
1 回答
765 浏览

ios - 使用自定义演示控制器时保留原始状态栏外观

我使用自定义的导航控制器中包含的控制器提供导航控制器UIPresentationController

我的问题是我无法保留原始状态栏的外观。我不想将状态栏的控制权交给新呈现的模式,而是我想把它留给源控制器。我怎样才能做到这一点?

我玩过,modalPresentationStyle但我无法用它实现任何目标,在我的情况下唯一合理的价值是UIModalPresentationCustom,否则没有任何效果或变得很奇怪。

我没有preferredStatusBarStyle在任何地方实现,因为在 iOS 9 上,导航控制器从导航栏样式中选择了正确的。

转换本身是半模态的,这意味着源控制器的某些部分保留在屏幕上。这就是UIPresentationController子类实现的原因shouldRemovePresentersView

更新:

以下雷达:(https://openradar.appspot.com/22565293)描述了问题,并且在私有方法的帮助下,我能够阻止呈现的控制器捕获状态栏外观。

我想知道是否有任何官方方法可以实现相同的目标。

0 投票
0 回答
199 浏览

ios - 如何为呈现的视图的框架设置动画?

当键盘变得可见时,我需要UIPresentationController使用动画调整呈现的自定义视图的框架。

由于自动添加的约束,动画似乎不起作用。我试图通过修改这些约束来创建动画,但失败了。

在过去的 8 个小时里,我一直在尝试解决这个问题,但失败了。在文档中也找不到任何有用的信息UIPresentationController。谁能给我一些建议如何解决这个问题?

我试图重现类似于 modalPresentationStyle .Popover 的效果。只需减少框架高度和原点,这样键盘就不会覆盖任何内容。

我希望框架在键盘出现时适应。

PresentedVC示例:

0 投票
2 回答
3356 浏览

ios - UIPresentationController preferredContentSize 更新动画

所以我有一个非常基本的UIPresentationController,它基本上以屏幕为中心显示contentView,它的大小由视图控制器preferredContentSize 决定。(它非常类似于以 FormSheet 形式呈现的常规模式视图控制器)。

我想要实现的是能够动态更新此视图控制器视图的大小,只需更改它的preferredContentSize。

当我设置preferredContentSize 时,我的UIPresentationController 子类会在以下位置接收有关它的信息:

但是我怎样才能从这里用动画调整视图框架的大小?如果我只是打电话:

立即被调用 containerViewWillLayoutSubviews 并且框架在没有动画的情况下被更改。

请帮我找到一种方法,用动画调整它的大小。这一定是可能的,因为它会通过动画调整大小,例如在发生旋转时。

0 投票
1 回答
927 浏览

ios - 动态调整嵌入在 Popover 中的表格视图的宽度以适应单元格内容

我的风景,iPad 应用程序有一个表格视图控制器,显示为来自条形按钮项目的弹出窗口。

为了使弹出框适合表视图大小,我在表视图控制器的代码上执行此操作:

这适用于将弹出框的高度调整为表格视图的高度(考虑到行数和每行的高度)。

但是,如果我将其中一个单元格的标签设置为过长的字符串,它将截断 ( ...),即使屏幕上有足够的空间供弹出框(和表格视图)进一步水平增长。

我可以硬编码一些足够大的宽度,如下所示:

...但我更喜欢动态和优雅的解决方案(例如,适合所有单元格内容的最小宽度)。

0 投票
1 回答
1037 浏览

ios - 在 iOS 9 上关闭 segue 创建的 Popover

Stack Overflow 上有很多关于此的问题和答案,但它们仅适用于 iOS 8 及之前的版本。

iOS 9 弃用了很多东西,所以关于 SO 的答案不再有效。

说,我通过执行这样的 segue 来呈现一个弹出窗口

这个 segue 在当前 viewController 和 popover 使用的 viewController 之间创建。不涉及任何按钮。弹出框锚定到视图。

问题是在prepareForSegue:identifier

是一个UIViewController

是新的UIPopoverPresentationController,并且此对象不再提供驳回 api。

相反,我们应该使用

关闭弹出窗口,但这对我没有影响。

我的情况是这样的:我有一个带有文本字段的弹出框。如果用户隐藏键盘,我想关闭弹出窗口。

所以我这样做了:

接着

但这根本没有效果。

我还尝试在 popover viewController 中创建一个 unwind segue 并从呈现视图控制器中调用它,但这会使应用程序崩溃。

0 投票
2 回答
423 浏览

ios - iOS 9:按下主页按钮时不调用 UIPresentationController::runTransitionForCurrentState

我是 iOS 开发的新手,如果有人能帮助我解决这个问题,我将不胜感激。

似乎在UIPresentationController::runTransitionForCurrentState按下主页按钮时会调用 iOS <= 8,但在 iOS 9 中不会发生这种情况,这会导致我的应用出现一些问题。我想知道幕后的原因是什么。这是iOS 9的错误吗?如果是这样,是否有解决此问题的解决方案?非常感谢!