#objective-c #share #message #uiactivitycontroller
#objective-c #Поделиться #Сообщение #uiactivitycontroller
Вопрос:
Я пишу приложение для iOS в коде objective C, и это метод действия, когда пользователь нажимает на кнопку на панели инструментов
- (void)tappedInToolbar:(MyToolbar *)toolbar shareButton:(UIButton *)button {
UIActivityViewController *activityController = [[UIActivityViewController alloc]
initWithActivityItems:@[self, document.fileURL]
applicationActivities:nil];
activityController.modalPresentationStyle = UIModalPresentationPopover;
[self presentViewController:activityController animated:YES completion:nil];
UIPopoverPresentationController *popController = [activityController popoverPresentationController];
popController.permittedArrowDirections = UIPopoverArrowDirectionAny;
popController.sourceView = button;
}
Приложение может успешно представить контроллер активности
и я могу выбрать множество системных приложений для совместного использования моих файлов, таких как почта «Airdrop», заметки и т.д.; Однако Всякий раз, когда я нажимаю на сообщения, чтобы поделиться файлами, приложение завершает работу с этой трассировкой стека.
Если кто-нибудь знает, как исправить эту проблему, пожалуйста, поделитесь, это было бы действительно оценено.
1
IOSurface
IOSurfaceClientGetPixelFormat 0
2
QuartzCore
CA::CG::IOSurfaceContext::create_delegate(CGIOSurfaceContextInfo const*, __CFDictionary const*) 544
3
CoreGraphics
CGIOSurfaceContextCreate 212
4
BaseBoardUI
BSUISurfaceWithColorSpaceAndDrawBlock 536
5
SpringBoardFoundation
SBFCreateIOSurfaceForImage 1092
6
ChatKit
-[CKRemoteItemForSending _setPreviewUIImage:] 80
7
ChatKit
__46-[CKRemoteItemForSending beginPreviewCreation]_block_invoke 208
8
Foundation
__NSBLOCKOPERATION_IS_CALLING_OUT_TO_A_BLOCK__ 20
9
Foundation
-[NSBlockOperation main] 100
10
Foundation
__NSOPERATION_IS_INVOKING_MAIN__ 20
11
Foundation
-[NSOperation start] 736
12
Foundation
__NSOPERATIONQUEUE_IS_STARTING_AN_OPERATION__ 20
13
Foundation
__NSOQSchedule_f 180
14
libdispatch.dylib
_dispatch_block_async_invoke2 140
15
libdispatch.dylib
_dispatch_client_callout 16
Комментарии:
1. @matt спасибо за комментарий, наличие self или нет не делает разницы. Я удалил его, и он все еще выходит из строя.
2. Я не могу воспроизвести это. Происходит ли это в конкретной версии iOS? Происходит ли это только на определенном устройстве?
UIPopoverPresentationController *popController
Необходимо ли для возникновения сбоя? Можете ли вы поделиться минимальным образцом проекта, который может повторить это?3. Почему вы ставите
self
на свойinitWithActivityItems
? Поддерживаете ли выUIActivityItemSource
свой контроллер просмотра? Если нет, вам следует удалить его.4. Вы используете
UIButton
, но из текста я ожидаю, что это будетUIBarButtonItem
? Просто чтобы подтвердить, что вы представляете из UIButton или UIBarButtonItem?