2013-01-05 65 views
2

爲iPhone開發,我有一個主視圖控制器,使用UIModalTransitionStylePartialCurl的過渡呈現第二個「共享」視圖控制器。這些從用戶界面的角度來看似乎很有意義,因爲它可以佔用一些空間,在底部顯示幾個共享按鈕,同時保持用戶在主視圖上。此時,如果我有一個按鈕啓動第三個視圖(本例中爲MFMailComposeViewController),則郵件視圖將顯示在前一個視圖的捲曲下方,使其無法使用。iOS在UIModalTransitionStylePartialCurl視圖控制器上的全屏視圖

我想爲第三個郵件視圖打破並完全呈現自己,這是不可能的?

如果我搞砸了Apple UI標準或其他什麼東西,那就隨意把我擊倒。

回答

0

嘗試在curl下關閉vc後,從presentsViewController呈現郵件vc。這種方法是這樣的:

在FirstVC(觸發捲曲過渡之一):

FirstVC.h

- (void)presentMail; 

FirstVC.m

- (void)presentMail { 
    // the code to present the mail UI, moved here from the SecondVC under the curl 
} 

SecondVC。 m

- (IBAction)userPressedTheMailButton:(id)sender { 

    [self dismissViewControllerAnimated:YES completion:^{ 
     [self.presentingViewController presentMail]; 
    }]; 
} 
+0

不幸的是,g請給我一個 警告:嘗試在上呈現,其視圖不在窗口層次結構中! 但我會說在這種情況下我沒有使用navigationController,那是什麼讓我煩惱? 這裏的命名很奇怪,「呈現」(命令)和「preSent」有點混亂。我猜「presentViewController指的是什麼呈現'自我'和presentViewController是要呈現的命令? – trevorgrayson

+0

嗯,對不起,它沒有工作,但這是一個奇怪的錯誤,你是正確的,呈現ViewController引用視圖控制器介紹了當前的一個(在sdk上,現在是一個動詞,意思是讓用戶可見)。爲什麼VC的視圖不在層次結構中?您能否將郵件代碼暫時移動到第一個vc中,然後查看是否它的工作原理是什麼? – danh

+0

希望它的確如此。我的答案背後的想法是讓第一個VC來完成郵件展示presentationViewController只是一個捷徑,如果它適用於第一個vc,那麼你只需要一種方式來表達從vc下的curl。當它按下按鈕時,關閉它自己並提醒最上面的一個。 – danh

相關問題