簡體   English   中英

同時關閉兩個當前的ModalViewControllers(MPMediaPickerController和UIViewController)

[英]Dismiss two present ModalViewControllers (MPMediaPickerController and UIViewController) at the same time

解雇兩個modalviewcontrollers時遇到一個奇怪的問題。

我正在做的是我有一個viewControllers A和B。我在A上顯示MPMediaPickerController 。然后在BI上,在B上顯示MPMediaPickerController 。現在我的問題是在MPMediaPickerController中單擊“完成”按鈕后,它的委托方法正在調用。 我實現了以下代碼以關閉MPMediaPickerController和Controller B,以便我們可以直接轉到ControllerA。

- (void)mediaPicker:(MPMediaPickerController *)mediaPicker didPickMediaItems: (MPMediaItemCollection *) mediaItemCollection
{  
    [self.presentingViewController.presentingViewController dismissViewControllerAnimated:YES];
}

相同的代碼適用於ViewController A,B和C,但如果第三個是MPMediaPickerControllerMPMediaPickerController

任何想法或建議都非常有幫助。

為什么要使用dismissModalViewControllerAnimated方法? 已過時,請改用dismissViewControllerAnimated

檢查以下代碼:

- (void)mediaPicker:(MPMediaPickerController *)mediaPicker didPickMediaItems: (MPMediaItemCollection *) mediaItemCollection
{ 
   [self dismissViewControllerAnimated:YES completion:^{
        [[self presentingViewController] dismissViewControllerAnimated:YES completion:nil];
    }];
}

每當您從控制器呈現MPMediaPickerController時,都必須將其代理設置為呈現控制器。 由於委托方法在呈現的視圖控制器內部,因此必須調用dismissModalViewControllerAnimated而不是正在執行的操作。 我只是將bool參數傳遞給NO,因為每當您嘗試同時解雇一個ViewController時,iOS會出現不平衡的過渡調用,這可能會阻止另一個調用。 因此,我只是不使用任何動畫就解雇了MPMediaPickerController,並使用動畫來呈現視圖控制器。

- (void)mediaPicker:(MPMediaPickerController *)mediaPicker didPickMediaItems: (MPMediaItemCollection *) mediaItemCollection
{  
    [self dismissModalViewControllerAnimated:NO];
    [self.presentingViewController dismissModalViewControllerAnimated:YES];
}

您是否嘗試過以下代碼?

- (void)mediaPicker:(MPMediaPickerController *)mediaPicker didPickMediaItems: (MPMediaItemCollection *) mediaItemCollection
{  
    [mediaPicker dismissModalViewControllerAnimated:NO];

    [self dismissModalViewControllerAnimated:YES]; 

}

謝謝!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM