UIModalPresentationFormSheet,缺少暗淡
Posted
技术标签:
【中文标题】UIModalPresentationFormSheet,缺少暗淡【英文标题】:UIModalPresentationFormSheet, dim is missing 【发布时间】:2011-02-24 23:01:21 【问题描述】:我正在尝试使用UIModalPresentationFormSheet
视图样式在 iPad 应用程序中显示模态视图控制器。我正在寻找类似于邮件应用的新消息 UI/动画的东西。
有两件事行为不正确: 呈现的模态视图控制器总是动画到 y=0,即到最顶部 查看状态栏下方的某些像素,而不是像在邮件应用中那样。
文档说:
UIModalPresentationFormSheet 宽度 和呈现视图的高度是 比屏幕小, 视图以屏幕为中心。如果 设备在风景中 方向和键盘是 可见,视图的位置是 向上调整,使视图 仍然可见。 所有未覆盖的区域 变暗,以防止用户 与他们互动。
但是,在我的情况下,没有变暗,我仍然可以与 modalViewController 下方的 parentView 进行交互。
呈现modalView的控制器我这样做:
AddNewItemViewController *newItemViewController = [[AddNewItemViewController alloc] initWithNibName:@"AddNewItemViewController" bundle:nil];
[self presentModalViewController:newItemViewController animated:YES];
[newItemViewController release];
在呈现的 viewController 中,我这样做:
- (void)viewDidLoad
[nameField becomeFirstResponder];
[self setModalTransitionStyle:UIModalTransitionStyleCoverVertical];
[self setModalPresentationStyle:UIModalPresentationFormSheet];
[super viewDidLoad];
希望有人能帮帮我。
我需要在 parent 和 modalViewController 上设置一些其他属性吗?
viewDidLoad 不是进行此设置的正确位置吗?
提前致谢:)
【问题讨论】:
【参考方案1】:在创建模态视图时,在调用 presentModalViewController 之前设置过渡和演示样式。请记住,创建模态视图的视图“拥有”该对象。您希望所有者设置这些属性,因为您可能会在应用程序的其他地方实现此模式视图,并且需要不同的过渡或演示样式。这样,您每次都可以根据需要进行设置。
AddNewItemViewController *newItemViewController = [[AddNewItemViewController alloc] initWithNibName:@"AddNewItemViewController" bundle:nil];
newItemViewController.modalPresentationStyle = UIModalPresentationFormSheet;
[self presentModalViewController:newItemViewController animated:YES];
[newItemViewController release];
你在 viewDidLoad 中调用 becomeFirstResponder 是对的。
【讨论】:
@RickiG 或@W Dyson - 这解决了背景暗淡的问题吗?以上是关于UIModalPresentationFormSheet,缺少暗淡的主要内容,如果未能解决你的问题,请参考以下文章