2011-02-24 95 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