1

出現了一個奇怪的問題。當我添加到我的UIPopoverController時,通常在導航欄上顯示的取消按鈕在添加UIImagePickerController時缺失。添加到UIPopoverController時從UIImagePickerController中缺少導航按鈕

我已經嘗試過UIImagePickerController的子類,並且自己在導航欄上添加了一個導航按鈕,但它沒有顯示出來。

如果我選擇我的相機膠捲,後退按鈕會自動添加,但取消按鈕仍然丟失。

任何人都知道可能會導致這種情況?

這是我使用的代碼。請注意,_popOver是我的UIPopoverController的實例。

UIImagePickerController *picker = [[UIImagePickerController alloc] init]; 
picker.delegate = self; 
picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; 
[_popOver setContentViewController:picker animated:YES]; 

回答

1

我試過這段代碼,現在我認爲這是一個默認行爲。 UIImagePickerController通常以模式視圖控制器的形式出現,取消按鈕的目的是解除它。當你將UIImagePickerController放入UIPopoverController時,Cancel按鈕變得毫無意義。對於解僱這個,你可以點擊任何地方(UIPopoverController視圖除外)。如果您要訪問的時候UIPopoverController會/沒有駁回使用UIPopoverControllerDelegate方法的UIImagePickerController:

- (BOOL)popoverControllerShouldDismissPopover:(UIPopoverController *)popoverController{ 
    UIImagePickerController *imagePicker = (UIImagePickerController*)popoverController.contentViewController; 
    return YES; 
} 
+1

你可能是正確的,但它確實限制了設計可能與此組件。在我的應用程序中關閉彈出窗口並不是一種選擇,因爲在啓動圖像選擇器之前,您必須在導航控制器內的多個菜單中導航。因此,如果您取消選擇器,那麼在您啓動選取器之前,您很快就會回到這一點。關閉彈出窗口會在邏輯上將您帶回到導航控制器的根目錄,或者可能返回到之前解散之前的相同頁面。 –