问题标签 [uipopoverpresentationcontroller]
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.
ios - ViewController 内容大小不会改变弹出框大小
弹出框的首选尺寸仅在高度大于 320 时有效。
我已经搜索了很多来解决这个问题。但没有找到任何答案。弹出框在 iPad 中是否应满足任何最小尺寸?如果没有,我错过了什么?
代码:
注意:
我试过了,adaptivePresentationStyleForPresentationController:
&adaptivePresentationStyleForPresentationController:
返回UIModalPresentationNone
。
objective-c - 处理 UIPopovers 的旧方法不起作用;复制代码,现在崩溃
****更新**得到以下崩溃:[UploadViewController _viewForPresenting]:无法识别的选择器发送到实例0x7abe4c00**
旧的使用 UIPopOvers 的方式在 iOS 8 中被弃用了;所以我尝试升级;不幸的是,它不起作用。我没有得到弹出框本身,只是底部当前视图的顶部(参见此处的图片)。我确定这里缺少一些东西,但是在花了 2 天之后,我没有看到问题。我已经远离编码工作,所以我请求帮助解决这个编码问题。这是我的代码(从这里复制和修改):
ios - UIPopoverPresentationController : 多个 allowedArrowDirections 顺序优先级
使用UIPopoverPresentationController
在弹出窗口中呈现视图控制器,您可以定义permittedArrowDirections
属性来限制弹出窗口定位的可能性。我们可以使用|
operator 定义多个方向:
我知道控制器会根据可用空间自动选择这些方向之一。
但是可以定义订单优先级吗?这样:如果A和B两个方向都有足够的空间,请优先使用A。
我试图颠倒 and 的顺序UIPopoverArrowDirectionDown
,UIPopoverArrowDirectionUp
但它似乎总是优先考虑UIPopoverArrowDirectionDown
。
有没有人有实现这一目标的想法?
ios - 当源视图在 Swift 中更改时,如何更新弹出框的布局(位置)?
我想更新弹出框的布局,我已经尝试过使用setNeedsLayout()
andlayoutIfNeeded()
方法但找不到解决方案。
我有一个简单的屏幕,有 4 个调用弹出框的按钮,在弹出框内有 2 个额外的按钮:
- Button -> 隐藏 button3,并将 button1 和 button2 向左移动。
- 重新定位 -> 将弹出框的源视图从 button1/2/3/4(发送者)更改为 button4。 布局图
我遇到的问题是我无法更新/刷新屏幕,并且弹出框一直指向以前的源视图位置。 弹出框的图片
不知何故,我需要一种方法来更新我的视图,并且比layoutIfNeeded()
因为如果屏幕从纵向/横向更改,弹出框会自动更改。在这里我改变了肖像/风景/肖像
项目的 GitHub。GitHub
使用的代码如下:
和弹出控制器:
ios - 在常规尺寸的 iPhone 上与 UIPopoverPresentationController 的内容进行交互?
看起来 - 至少在默认情况下,虽然您可以在 plus iPhone 上与弹出框的内容交互并通过点击背景将其关闭,但在普通的非 plus 手机上,行为是相反的。
有谁知道如何纠正和/或配置此问题,以便您可以与普通 iPhone 上的弹出框交互?
我有一个在这里演示问题的示例:
https://github.com/chrisco314/iPhone-Popover-Test,
但相关代码是:
谢谢!
ios - 如何在 iPhone 中使用弹出框控制器
我无法在 iPhone 中将 popover 控制器显示为 popover,而它与 iPad 配合得很好。
关于如何在 iPhone 中做到这一点的任何想法。
据我搜索,我找不到任何东西。
无论如何,让弹出框出现在 iphone 中,就像它在 iPad 中一样,值得赞赏!
ios - 应用程序在第二次呈现视图(弹出框)时崩溃
我刚刚偶然发现了这个问题,想知道是否有人可以帮助解释这个问题。
在 iPad 上使用时,我的视图有一个嵌套UINavigationController
显示在弹出框内。我最近一直在将此代码转换为 Swift 并尝试使用延迟初始化,如下所示:
注意 menuView 和 menuButton 也是延迟初始化的
然后,我尝试将视图呈现如下:
我第一次打开菜单时一切正常,菜单按预期显示。但是,如果我通过点击屏幕的另一个区域来关闭菜单,然后再次尝试重新打开它,则会出现以下崩溃:
UIPopoverPresentationController () 应该在演示发生之前设置一个非零的 sourceView 或 barButtonItem。
openMenu()
如果我对函数进行以下更改,此崩溃就会消失:
那么上面的修复是必要的吗?我是否遗漏了任何可以在惰性初始化块中设置的明显内容?
(来自示例项目的崩溃日志)
2018-06-29 21:13:09.836061+0100 PopoverBugExample[90568:1465443] * 由于未捕获的异常“NSGenericException”而终止应用程序,原因:“UIPopoverPresentationController () 应该在演示发生之前设置非零 sourceView 或 barButtonItem。 ' *第一次抛出调用堆栈:(0 CoreFoundation 0x0000000110c4b7f6 exceptionPreprocess + 294 1 libobjc.A.dylib
0x000000010f2a3035 objc_exception_throw + 48 2 UIKitCore
0x0000000113323a0e -[UIPopoverPresentationController 6183 UIKitCore PresentationTransitionWillBegin] + 3
0x000000011332d568 __71-[UIPresentationController _initViewHierarchyForPresentationSuperview:]_block_invoke + 2495 4 UIKitCore 0x000000011332ab5c __56-[UIPresentationController runTransitionForCurrentState]_block_invoke + 468 5 UIKitCore
0x0000000112fd8965 _runAfterCACommitDeferredBlocks + 318 6
UIKitCore 0x0000000112fc77d3 _cleanUpAfterCAFlushAndRunDeferredBlocks + 397 7 UIKitCore 0x0000000112ff7131 _afterCACommitHandler + 141 8 CoreFoundation
0x0000000110baee97 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION+ 23 9 CoreFoundation 0x0000000110ba92ce __CFRunLoopDoObservers + 430 10 CoreFoundation 0x0000000110ba9971 __CFRunLoopRun + 1553 11 CoreFoundation
0x0000000110ba9021 CFRunLoopRunSpecific + 625 12 GraphicsServices
0x000000011825c16e GSEventRunModal + 62 13 UIKitCore
0x0000000112fcd3ff UIApplicationMain + 140 14 PopoverBugExample
0x000000010e97c857 main + 71 15 libdyld.dylib
0x00000001120dce61 start + 1 16 ???
0x0000000000000001 0x0 + 1 ) libc++abi.dylib:以 NSException 类型的未捕获异常终止
ios - popover 在 swift 4 中不起作用
我正在使用 UIPopoverPresentationControllerDelegate 来显示我的弹出框,它工作正常,但无法管理弹出框 viewController 的宽度和高度。以及如何在当前上下文中设置演示文稿?
swift - 以编程方式创建的 UIPopoverPresentationController 填充屏幕
我以编程方式创建的弹出窗口填满了屏幕。从示例代码中可以看出,我尝试了很多方法来限制它的大小,但都没有奏效。此外,没有调用委托方法。有任何想法吗?我过去曾成功地将 CALayer 用于这种事情,但认为这会更简单——也许不会。