2015-12-21 4 views
1

Я следил за предложениями из похожих вопросов SO и, похоже, не мог выполнить эту работу. Я работаю над игрой, в которой сообщается о последнем баллах, а затем о кнопке «Share» для этой последней оценки.UIActivityViewController не работает на iPad? iOS 8

Это работает на iPhone и мой код для iPad, как показано ниже. Версия iPad просто падает, как только я нажимаю кнопку «Поделиться». Этот код был от this tutorial on Coding Explorer.

IPad код (не работает)

- (IBAction)shareButton:(id)sender; 
{ 
    NSString * text = [NSString stringWithFormat:@"I just scored %li in Flying Freddy. Think you can beat it? https://itunes.apple.com/app/id1033007818", (long)_score]; 

NSArray *objectsToShare = @[text]; 

UIActivityViewController *activityVC = [[UIActivityViewController alloc] initWithActivityItems:objectsToShare applicationActivities:nil]; 

NSArray *excludeActivities = @[UIActivityTypeAirDrop, 
           UIActivityTypePrint, 
           UIActivityTypeAssignToContact, 
           UIActivityTypeSaveToCameraRoll, 
           UIActivityTypeAddToReadingList, 
           UIActivityTypePostToFlickr, 
           UIActivityTypePostToVimeo]; 

activityVC.excludedActivityTypes = excludeActivities; 

[self presentViewController:activityVC animated:YES completion:nil]; 
} 

iPhone код (делает работу)

- (IBAction)ShareIt { 

    NSString * text = [NSString stringWithFormat:@"I just scored %li in Flying Freddy. Think you can beat it? https://itunes.apple.com/app/id1033007818", (long)_score]; 

    NSArray * activityItems = @[text]; 
    UIActivityViewController * avc = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:nil]; 
    avc.excludedActivityTypes = @[ UIActivityTypePrint, UIActivityTypeCopyToPasteboard, UIActivityTypeAssignToContact, UIActivityTypeSaveToCameraRoll]; 

    [self presentViewController:avc animated:YES completion:nil];  
} 
+0

Я не уверен, но может быть, вы должны представить UIActivityViewController в UIPopoverViewController на IPad. .. –

ответ

2

Вы должны добавить исходный вид.

Попробуйте добавить эту строку:

activityVC.popoverPresentationController.sourceView = self.view; 

Вы также можете добавить направление стрелки:

activityVC.popoverPresentationController.permittedArrowDirections = UIPopoverArrowDirectionRight; 
activityVC.popoverPresentationController.sourceView = sender; 
+0

Спасибо, это сработало. Но как вы делаете popover прямо над кнопкой «Поделиться», а не в каком-то неясном углу, как я сейчас получаю? Мой снимок экрана: http://i.stack.imgur.com/8wc0c.png –

+0

Нравится это: activityVC.popoverPresentationController.permittedArrowDirections = UIPopoverArrowDirectionDown; activityVC.popoverPresentationController.sourceView = отправитель; – Pipiks

Смежные вопросы