Общий лист — исключить параметры, которые не указаны в качестве свойств типа в UIActivityType.

Я хочу исключить Add to iCloud Drive, Add to Reading List, Save to Files & Print из общего листа.

Я мог бы исключить опции «Добавить в список для чтения» и «Печать», используя следующий код. Поскольку были предоставлены эти свойства типа.

activityViewController.excludedActivityTypes = [ UIActivityType.print, UIActivityType.addToReadingList ]

После того, как я искал в Google, я нашел способ удалить параметры, которые не включены в свойства типа, следующим образом (например: добавить на диск iCloud)

UIActivityType(rawValue: "com.apple.CloudDocsUI.AddToiCloudDrive")

Я хочу знать, как мы можем найти значения строки, чтобы исключить другие параметры, которые не определены в свойствах type . Например, Сохранить в файлы


person Dimuth Lasantha    schedule 27.10.2017    source источник
comment
Любые обновления? я пытаюсь исключить сохранение в файлы   -  person Awais Fayyaz    schedule 08.05.2019


Ответы (2)


Я попробовал предложение Джеффа (зарегистрировать UIActivityType путем реализации completionWithItemsHandler) для своих целей: отключить «Добавить в заметки», «Добавить напоминание» и «Сохранить в файлы». Это работает, КРОМЕ "Сохранить в файлы".

Зарегистрированный тип «Сохранить в файлы» UIActivityType тот же, что указан в этом вопросе, и добавление его в excludedActivityTypes не работает с iOS 11.1.2. Другие (здесь, и здесь) также столкнулись с этой проблемой.

В настоящее время кажется, что нет возможности исключить функцию «Сохранить в файлы» UIActivityType. Надеюсь, Apple скоро обновит документацию о том, как это сделать.

person dooman    schedule 14.12.2017
comment
У кого-нибудь есть новости по этому поводу, решила ли Apple проблему? - person Sumit Kapadia; 31.05.2018
comment
@SumitKapadia У кого-нибудь есть новости по этому вопросу? - person Awais Fayyaz; 08.05.2019

Самый простой способ определить, какие значения UIActivityType используются для недокументированных типов, — это добавить блок completionWithItemsHandler:, который регистрирует параметр UIActivityType, с которым он вызывается. Затем используйте свое приложение, чтобы поделиться чем-либо, и выберите тип действия, для которого вы хотите найти значение. Будет вызван обработчик завершения, регистрирующий его тип.

В качестве альтернативы вы можете создать свой собственный объект, который реализует UIActivityItemSource, добавить его к действиям элемента, которыми вы делитесь, и реализовать activityViewController(_:itemForActivityType:), и зарегистрировать тип.

person Geoff Hackworth    schedule 01.11.2017