问题标签 [uimodalpresentationstyle]
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 - UIModalPresentationCustom 样式在旋转时更改视图宽度
我有一个使用 UIModalPresentationCustom 呈现的模式。我在 animateTransition 方法中将“to”视图控制器的视图框架设置为 300 像素宽。当我呈现模态时,宽度很好,但是当我旋转屏幕时,宽度会改变。是否有我可以锁定的属性或委托方法可以覆盖修改后的宽度?
ios - 如何使用 UIModalPresentationCustom 在模态视图后面添加叠加层
我是 UIModalPresentationPageSheet 在我的应用程序中呈现模式。我需要更多的自定义,所以我转而使用 UIModalPresentationCustom。正如所料,这种风格是非常简单的,但我想知道是否有一个容易在模态窗口后面添加一个覆盖,就像你免费获得的 UIModalPresentationPageSheet 一样?是否有我可以锁定的属性或方法,或者我是否需要将另一个 UIView 添加到容器视图?
uitableview - 在 iOS8 中使用 ModalPresentationStyle OverCurrentContext 时 ScrollsToTop 不起作用
当呈现具有like orUIScrollView
子类或子类的模态视图控制器并使用呈现的控制器时,当状态栏被点击时,滚动视图不会滚动到顶部,这种行为发生在而不是在.UIScrollView
UITableView
UICollectionView
UIModalPresentationStyleOverCurrentContext
iOS8
iOS7
ios - 使用 popover 时移除背景以查看底层视图控制器
如果您想以模态方式呈现视图控制器但继续查看底层视图控制器,您可以将 更改UIModalPresentationStyle
为 Over Full Screen,然后将视图设置为backgroundColor
或clearColor
具有较低 alpha 值的颜色。默认的全屏显示会导致底层控制器消失,因此您会在下面看到黑色,除非您使用 Over Full Screen 或 Over Current Context。
现在我想改用自适应 Popover 演示样式,如果在 iPhone 6 Plus 上以横向运行,这将导致视图控制器在 iPhone 上以纵向或表单形式全屏呈现。但我想保留“全屏”风格——我希望能够通过新的视图控制器看到底层的视图控制器。如果默认情况下它会消失因此下面是黑色的,那如何实现呢?
ios - 如何将 modalPresentationCapturesStatusBarAppearance = NO 与自定义 UIPresentationController 一起使用?
我有一个自定义 UIPresentationController 并覆盖 frameOfPresentedViewInContainerView 以进行自定义 viewController 演示。一切正常,除了状态栏。
我根本不希望状态栏改变外观——它应该保持原来的样子。现在Apple文档:https ://developer.apple.com/library/ios/documentation/UIKit/Reference/UIViewController_Class/#//apple_ref/occ/instp/UIViewController/modalPresentationCapturesStatusBarAppearance说如果modalPresentationStyle不是UIModalPresentationFullScreen或modalPresentationCapturesStatusBarAppearance是NO,我应该没问题,状态栏不应该改变。
使用此代码:
我可以看到调用了 prefersStatusBarHidden,即使 modalPresentationCapturesStatusBarAppearance 为 NO(显示为 0)并且 modalPresentationStyle 为 UIModalPresentationCustom(显示为 4)。
显然,这就是在呈现 viewController 时状态栏发生变化的原因。
但为什么?
我对此的想法是,iOS 认为 viewController 以全屏显示,即使它不是。
我发现了 UIPresentationController 的属性 shouldPresentInFullscreen——它默认返回 YES。返回 NO 根本没有帮助,所以我不明白该属性甚至做了什么......它实际上没有任何效果。这同样适用于presentationStyle 属性——更改它时我看不到任何效果。我本来希望将presentationStyle 属性“重定向”到viewControllers modalPresentationStyle 属性,但它仍然保留在UIModalPresentationCustom,它必须首先启动自定义演示。
所以,我的问题是:有人知道如何使用自定义 UIPresentationController 保持状态栏不变——有人可以解释一下 shouldPresentInFullscreen 和presentationStyle 属性吗?
谢谢!:)
uimodalpresentationstyle - 使用在当前上下文中呈现的模态视图控制器时无法展开 Segue
这是关于最新版本的 Xcode 6 和 iOS 8.4。
我有一组三个视图控制器,它们VC2
&VC3
以模态方式呈现:
VC1
-> VC2
->VC3
每个 segue 都以.OverCurrentContext
. 我正在使用这种演示风格,因为两者VC2
都有VC3
一个UIVisualEffectView
模糊的背景,让下面的视图巧妙地显示出来。
我的问题是,我创建的展开segue既不会展开,也VC2
不会VC3
以. 但是,当我将演示文稿样式更改回它时,它可以工作。VC1
.OverCurrentContext
.Defatult
我真的更喜欢使用.OverCurrentContext
,因为在关闭时必须使用dismissViewController:animated:completion
会导致两个视图控制器的第二个不需要的动画。我希望能够解雇VC3
并立即看到VC1
而不会看到VC2
动画之间的解雇。另外,我不喜欢使用presentingViewController.presentingViewController.dismissViewController:animated:completion
,因为它也会导致在被解雇VC2
后解雇的不需要的动画VC3
。
关于如何解决这个问题的任何建议?
ios - UIModalPresentationStyle.CurrentContext Swift iOS 7
我想使用 iOS 7 显示一个视图 -PresentedView
在另一个视图Background View
上。在我的应用程序中,我正在使用UITabBArController
,所以在运行时我不知道哪个视图将是背景视图(可能是任何标签栏项目)。下面是结构:
需要这样的东西:
当应用程序加载时,我在TabItem1 - FirstUIViewController
. 当我点击 时TabItem3
,我想出ThirdUIViewController
现在 Top onFirstUIViewController
并且“FirstUIViewController”应该出现在背景中,并且没有启用用户交互。
到目前为止我做了什么:
由于
UIViewControllers
添加为Relationship Controllers
在TabBar Item
`UITabBarController 中显示,我添加了一个从 tabbarcontroller 到 ThridViewController 的 segue。将此 Segue 的 PresentationStyle 更改为 UIModalPresentationStyle.CurrentContext 并进行了以下修改
/li>
什么也没发生,我只看到白色背景的“ThridViewController”
我尝试了手动编码方法:
/li>
不用找了。新视图会覆盖之前的视图。如果我添加这个overlayController.view.backgroundColor = UIColor.clearColor()
,我会看到一半是黑色的,一半是包含我的新视图的
问题点:
- 我应该在哪里编写代码来初始化/调用 ThirdViewController 以显示在当前视图的顶部?
- 如何修复黑屏问题并使其在 iOS 7 上运行?
我正在使用 Xcode 7 并在 iOS7 上运行。请帮忙。工作代码片段将不胜感激。不要发布其他堆栈溢出帖子作为答案,除非代码有效并且您自己尝试过。
更新: - 使用这种方法,我得到一个黑屏
ios - 使用 UIModalPresentationOverFullScreen 与 UIModalPresentationFullScreen 时的性能问题
我有一个非常复杂但静态的ViewController A ,它在上面显示ViewController B。B完全覆盖A并且是不透明的。
我注意到,如果我使用我的 FPS 呈现BUIModalPresentationOverFullScreen
会下降到 30 左右,但如果我使用UIModalPresentationFullScreen
FPS 会更接近所需的 60。我知道由于B在A上呈现不透明,因此使用前一种样式没有意义,但我很想知道为什么渲染引擎仍在苦苦挣扎,因为据它所知,它不需要渲染/更新A。
ios - 'UIPopoverController' 已弃用:首先在 iOS 9.0 中弃用
我开发了一个显示错误的项目:
'UIPopoverController' 已弃用:首先在 iOS 9.0 中弃用 - UIPopoverController 已弃用。弹出框现在实现为 UIViewController 演示文稿。使用 UIModalPresentationPopover 和 UIPopoverPresentationController 的模态表示样式。
我的编码是:
视图控制器.h:
视图控制器.m:
我无法正确参考 UiModalPresentationPopover。有人可以帮我解决这个错误。任何帮助深表感谢。谢谢你。
ios - 解除双模态视图控制器的父视图控制器
我有当前的设置,其中->
是模态演示(presentViewController()
):
我目前在里面ViewController E
。我想关闭所有模态呈现的视图控制器,以便我可以回到ViewController A
. 似乎无论我尝试什么ViewController E
,(dismissViewController()
使用self
, parentViewController
, presentViewController
, navigationController
)我都可以轻松解雇ViewController E
但不能解雇ViewController B
及其所有子视图控制器。在我看来,当ViewController E
被解雇时,我已经失去了对它的所有引用,ViewController D
(导航控制器的子视图控制器NavigationController B)
仍然可见。
非常感谢您解除所有子视图控制器的ViewController E
任何帮助。NavigationController B