Как устанавливается заголовок UIActivityViewController? - PullRequest
0 голосов
/ 26 апреля 2020

Как устанавливается заголовок UIActivityViewController? У меня есть UIActivityViewController, который использует пользовательский UIActivityItemProvider, а также пользовательский UIActivity.

Заголовок, который отображается в верхней части UIActivityItemController, по сути, просто " / ", без субтитров. и затем примерно через секунду он меняется на «System@snap-2237692» с подзаголовком « File », как показано на снимке экрана ниже.

Где происходят ли эти заголовки и как я могу контролировать то, что появляется здесь?

Я попытался явно установить свойство "title" контроллера представления, но это не имеет значения.

enter image description here

1 Ответ

0 голосов
/ 26 апреля 2020

После небольшого количества проб и ошибок я обнаружил, что изменение элементов-заполнителей изменяет заголовок, отображаемый в UIActivityViewController, и что заголовок, по-видимому, используется только для файлов / URL-адресов.

I предоставляют различные элементы-заполнители, большинство из которых фактически являются пустыми объектами различных типов данных (ie, массив, словарь, данные и средство визуализации страницы печати). Поскольку все они пусты, UIActivityViewController вообще не отображает заголовок для них.

Однако я также предоставляю URL для файла, который будет создан позже. Первоначально я предоставлял заполнитель для этого URL-адреса как URL(fileURLWithPath: ""). Поэтому я предполагаю, что начальный символ "/", показанный в заголовке, действительно означает каталог файловой системы root. Я понятия не имею, что означает отображаемое впоследствии «System@snap-...»!

Но я обнаружил, что если я изменю этот конкретный элемент-заполнитель на что-то вроде URL(fileURLWithPath: "Some Text"), то любой текст, который я предоставлю как URL (или фактически как часть имени файла в URL - ie, все после последнего символа "/", если он есть) - это то, что отображается как заголовок UIActivityViewController.

Итак, теперь в по крайней мере, для этого случая я нашел способ контролировать, какой заголовок отображается там. И что еще более важно, чтобы избавиться от gibberi sh, который отображался в этом случае.

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

Мне все равно было бы интересно найти Узнайте, как UIActivityViewController выбирает заголовок, если есть несколько элементов-заполнителей, которые можно использовать для создания полезного заголовка. Как один будет выбран над другим? Почему заголовок для строкового элемента или атрибутного строкового элемента не предоставляется, а только для элементов файла / URL?

...