问题标签 [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.

0 投票
1 回答
54 浏览

uinavigationcontroller - 在 ModalViewController 中使用 UINavigation 控制器的问题

我正在尝试从另一个 UIViewController 以模态方式呈现 UINavigationController 的根视图。但是,当我单击触发模态转换的按钮时,我会看到一个空白屏幕,其中包含一个空的 UINavBar。我怀疑我没有将视图附加到 UINavigationController,但我不确定如何执行此操作。

这是我应该触发模态转换的目标操作方法的代码。此代码包含在 modal Presenter 的实现文件中:

0 投票
1 回答
629 浏览

ios - 调整模态视图控制器的大小时出现阴影错误

我想调整和重新定位模态视图。调整大小效果很好。重新定位不起作用。有阴影的错误。请看截图二。是否可以降低阴影?

在此处输入图像描述

在此处输入图像描述

0 投票
2 回答
545 浏览

ios - iPad 应用程序方向和重新定位问题

当我的 UI 流程如下时,我的应用程序中有一个奇怪的错误:

  1. mainViewController 以纵向启动,然后显示一个 LoginViewController,其中 modalPresentationStyle 设置为UIModalPresentationFullScreen

  2. 我将 loginViewController 设置为横向模式,输入凭据进行登录(验证用户的方法在 mainViewController 中定义)。

  3. loginViewController 被解除(从 mainViewController)并且一堆按钮被加载到屏幕上以指示它是主屏幕。

现在我的问题是按钮位置看起来好像应用程序处于纵向方向,即使在显示 loginViewController 时应用程序切换到横向。

此外,仅当 modalPresentationStyle 设置为UIModalPresentationFullScreen! 当我将其呈现为表单或页面表时,一切正常(但是,我需要将 loginViewController 显示为全屏)。

到目前为止,我已经尝试在 loginViewController 被解除等时手动调用 shouldAutorotate 方法,这解决了问题,但似乎是一种劣质的解决方法而不是修复。

我也尝试从 loginViewController 调用 mainViewController 的 shouldAutorotate 方法,但这并没有改变。

关于如何解决这个问题的任何想法?

0 投票
3 回答
902 浏览

ios - 如何找到键盘未覆盖的视图部分(UIModalPresenationStyleFormSheet)?

我有一个显示带有 UITextView 的视图的视图控制器,并且我想在键盘出现时调整视图的大小,以便 UITextView 不会被键盘覆盖。我几乎在所有情况下都能正常工作。据我所知,只有当视图控制器以 ModalPresentationStyleFormSheet 呈现并且仅以 LandscapeRight 方向呈现时,我仍然在 iPad 上看到了一些奇怪现象。

我的视图控制器 -keyboardWillShow 的相关部分:

-[UIView boundsInWindow]:

这在大多数情况下都有效。但是,当我的应用程序处于用户界面方向 LandscapeRight 时,我从 -boundsInWindow 获得的原点比它应该的要低很多。这可能是什么原因造成的?

感谢您的帮助!

0 投票
2 回答
9195 浏览

ios - 如何在中心呈现具有自定义大小的模态视图控制器?

我想展示一个自定义大小的模态视图控制器,底部有动画。ModalPresentationStyle我可以用to来实现这个动画FormSheet,但它迫使我使用默认大小 540x620并且我的视图不适合。

如何对放置在屏幕中心的任意大小的视图(控制器)执行类似的转换?

0 投票
2 回答
543 浏览

ios - 我的 viewController 没有正确显示

在我的 iPad 应用程序中,我试图以模态表单样式呈现我的一个观点。这是一些代码:

我正在使用 Storyboard,并且在我想显示的视图中放置了诸如 textView 和工具栏之类的东西。我已经在 Identity Inspector 中设置了正确的类,并且在类文件中我检查了它是否是正确的视图NSLog(@"Right view");

当调用虚空存在时,一个视图正在出现,但只是一个深白色的正方形。我的 Storyboard 中没有任何内容,我什至尝试更改视图和 textView 的背景颜色,以查看是否有东西在广场外,但整个东西都保持白色。感觉好像它没有使用我在情节提要中创建的视图,但是我已将其设置为正确的类,并且在调用它时会打印出 NSLog。我没有在 Storyboard 中以任何方式连接这两个视图,SecondViewController 只是浮动,所以这可能是问题吗?调用的按钮-(void)present是以编程方式创建的,所以我也不能按 ctrl+将它拖到按钮上。

为什么它显示我的班级的空版本?

0 投票
1 回答
1787 浏览

ios - iPad:在横向呈现 UIImagePickerController 会在关闭时旋转我的其他视图控制器

UIImagePickerController在 iPad 上展示一个带有UIImagePickerControllerSourceTypeCamera. 我知道其他UIImagePickerControllerSourceType选项需要在 a 中呈现UIPopoverController,但我怀疑相机应该是。

话虽如此,我正在从模态视图控制器呈现相机,该控制器呈现为formSheet. 有时当我展示选择器时,它会向下移动几个像素,就像状态栏将其向下推:

在此处输入图像描述

接下来,当我关闭选择器时,它已将我formSheet的模式旋转为纵向模式,但底层UISplitViewController仍处于横向模式:

在此处输入图像描述

这里发生了什么?UIImagePickerController从模态表单中呈现 a 时,我做错了什么吗?

0 投票
1 回答
4760 浏览

ios - 将重叠的 UIViewController 放在前面

我目前在我的 iPhone 应用程序中同时运行三个视图控制器。
我使用滑动视图

这是我的形象:

在此处输入图像描述

当我点击表格视图单元格时,我想打开一个新的视图控制器,如下所示:

在此处输入图像描述

(鸡蛋代表一个新的视图控制器。

但是你可以看到我的橙色视图控制器在前面。

我该如何改变?

我用来打开的代码egg-viewcontroller

0 投票
1 回答
946 浏览

uiviewcontroller - UIModalPresentationCurrentContext - 未调用旋转方法

我正在尝试使用 UIModalPresentationCurrentContext 在 VC 之上呈现 VC,以便查看其背后的视图。下面的代码有效:

但是,当我在 VC 被推动后旋转设备时,旋转看起来完全一团糟。它不是干净地旋转而是尴尬地拉伸视图以适应新的方向。

此外,当我将 transparentViewController 子类化时,我发现它的 viewwillautorotate 方法没有被调用!(即使它以混乱的动画方式旋转)

UIModalPresentationCurrentContext 样式不是要旋转吗?有没有办法解决?有没有其他人遇到过这个问题?

0 投票
1 回答
584 浏览

iphone - 模态演示样式中忽略的 UITableView 样式

当在 iPad 内部以模态方式呈现时,我对 a UITableViewin a的样式有疑问。很简单,我希望表格单元格边框不出现,因此在 IB 中,我将分隔符样式设置为“无”,将分隔符颜色设置为“清除颜色”。在 NIB 中,我的分组表看起来像我想要的样子:UIViewControllerUINavigationController

在此处输入图像描述

在 NIB 中,tableView 连接到文件的所有者,因为它是源和委托。它也被设置为 IBOutlet。文件所有者的类名已正确设置为我要加载此 NIB 的 VC。在启动时,我创建了这个 VC 的一个实例,然后我创建了一个UINavigationController. UINavigationController我用这个 VC(有)初始化UITableView,然后以UINavigationController模态方式呈现。在 iPad 上,我使用模态表单呈现样式呈现它。

在我的 AppDelegate 的application:didFinishLaunchingWithOptions:方法中,我实例化并保留对 VC 及其父级 UINavigationController 的引用:

然后......在执行了一些逻辑之后(仍在 AppDelegate 中),我以UINavigationController模态方式呈现:

iPhone 上的世界一切都很好,因为我的单元格边框不可见:

在此处输入图像描述

但是,在 iPad 上,单元格边框清晰可见,并且我的导航标题样式全部消失(这是另一天的问题):

在此处输入图像描述

我真的很想知道为什么UITableView在 iPad 上会忽略这样的分隔符样式。我尝试将其设置modalPresentationStyle为 PageSheet 和 FullScreen 并遇到同样的问题。我还尝试在 VC viewDidLoad(包含表格视图)中设置这些属性,但无济于事。我也尝试过创建一个特定于 iPad 的 NIB“LoginViewController~ipad”并以这种方式连接所有内容,但这似乎也没有什么不同。

这可能是我保留登录 VC 并且它包含的方式UINavigationController,但我不能确定,因为这在 iPhone 上工作得很好。

我猜这可能与 iPad 上的模态演示有关,对于我所有的搜索和尝试不同的组合,我无法弄清楚发生了什么。有任何想法吗?

[编辑]

我正在使用 iOS 6.1、5.1 和 5.0 的模拟器工作。我在所有版本中都看到了同样的问题。我现在坚持使用 iOS 6.1,并将向后移动以兼容。我还没有转移到设备上。

谢谢!