2011-02-24 96 views
2

我试图在使用UIModalPresentationFormSheet视图样式的iPad应用程序中显示模式viewController。我正在寻找类似于邮件应用程序的新消息 UI /动画。UIModalPresentationFormSheet,dim is missing

有两件事情,不正确行为: 模态的viewController被呈现总是动画到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]; 
} 

我希望有人能帮助我。

是否还需要在父级和modalViewController上设置其他一些属性?

viewDidLoad不是正确的地方做这个设置?

感谢提前:)当您创建模式的看法

回答

3

您设定的过渡和表现风格,你可以调用presentModalViewController之前。请记住,创建模态视图的视图'拥有'该对象。您希望所有者设置这些属性,因为您可能在应用中的其他位置实现了此模式视图,并且需要不同的过渡或演示样式。这样,您可以根据需要每次设置它。

AddNewItemViewController *newItemViewController = [[AddNewItemViewController alloc] initWithNibName:@"AddNewItemViewController" bundle:nil]; 
    newItemViewController.modalPresentationStyle = UIModalPresentationFormSheet; 
    [self presentModalViewController:newItemViewController animated:YES]; 
    [newItemViewController release]; 

你说得对,在viewDidLoad中调用becomeFirstResponder。

+0

现货。谢谢,这很有道理:) – RickiG 2011-02-25 11:22:43

+0

@RickiG或@W戴森 - 这是否解决了昏暗的背景问题? – zekel 2011-11-02 16:22:02