2016-04-04 50 views
0

我有一個UIActivityViewController,我在iPad上使用UIPopoverPresentationController彈出窗口。UIActivityViewController不在UIPopoverPresentationController中呈現時調整大小

當彈出窗口最初顯示時,其大小是正確的。當我點擊「更多」時,會顯示一個「活動」視圖。當我點擊'完成'時,UIActivityViewController不會調整到其初始大小,並且UIActivityViewController中的內容不會佔用整個視圖。

這裏是所採取的步驟:

顯示UIActivityViewController: enter image description here

的酥料餅,以防止該文本被切斷擴展: enter image description here

上的「更多」按鈕點擊關閉。

輕按上的導航欄的「完成」按鈕: enter image description here

的酥料餅不會再次到其初始大小是什麼調整。

在創建和顯示UIActivityViewController代碼:

- (void)actionButtonTapped:(id)sender { 
UIActivityViewController *activityViewController = [[UIActivityViewController alloc] initWithActivityItems:@[self.pdfSummary] applicationActivities:nil]; 

BOOL canSendMail = [MFMailComposeViewController canSendMail]; 
NSMutableArray *excluded = [@[UIActivityTypeAddToReadingList, 
     UIActivityTypeAssignToContact, 
     UIActivityTypeCopyToPasteboard, 
     UIActivityTypeMessage, 
     UIActivityTypePostToFacebook, 
     UIActivityTypePostToFlickr, 
     UIActivityTypePostToTencentWeibo, 
     UIActivityTypePostToTwitter, 
     UIActivityTypePostToVimeo, 
     UIActivityTypePostToWeibo, 
     UIActivityTypeSaveToCameraRoll] mutableCopy]; 
if (!canSendMail) { 
    [excluded addObject:UIActivityTypeMail]; 
} 
activityViewController.excludedActivityTypes = excluded; 

[self showActivityViewController:activityViewController fromBarButtonItem:sender]; 

}

而且showActivityViewController方法看起來是這樣的:

UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:activityViewController]; 
navController.modalPresentationStyle = UIModalPresentationPopover; 
navController.navigationBarHidden = YES; 

UIPopoverPresentationController *popoverPresentationController = [navController popoverPresentationController]; 

popoverPresentationController.permittedArrowDirections = arrowDirection; 
popoverPresentationController.barButtonItem = buttonItem; 

[self presentViewController:navController animated:YES completion:nil]; 

return popoverPresentationController; 

有沒有辦法解決這個。調整popover的大小或保持一個尺寸?

我試圖繼承UIActivityViewController和改變preferredContentSize,但UIActivityController的內容將不會調整大小以適應酥料餅的大小

+0

如果我沒記錯的話,你需要顯示從最上面的視圖控制器此酥料餅。我也認爲你需要從代表的完成處理程序中解僱它。 你怎麼解僱popover? – fsb

+0

您不應該創建自己的導航控制器或彈出窗口來顯示「UIActivityViewController」。 – rmaddy

+0

當前@fbara當它被點擊外部時,或者當列表中的一個項目被選中時,它被解僱,但解僱它並不是問題在這裏。 – user3253063

回答

0

不要把活動控制器到導航控制器。直接使用活動控制器中的彈出窗口。

您可以更新showActivityViewController如下:

UIPopoverPresentationController *popoverPresentationController = [activityViewController popoverPresentationController]; 

popoverPresentationController.permittedArrowDirections = arrowDirection; 
popoverPresentationController.barButtonItem = buttonItem; 

[self presentViewController:activityViewController animated:YES completion:nil]; 
相關問題