Uidocumentbrowserviewcontroller - Докладывается приложениеIOS

Программируем под IOS
Ответить
Anonymous
 Uidocumentbrowserviewcontroller - Докладывается приложение

Сообщение Anonymous »

Я использую UIDocumentBrowserViewController. В этом представлении уже созданы два завершающих элемента кнопки панели навигации. Я не ссылаюсь на них в своем коде и не определяю их действия. Я хочу добавить третью кнопку и разместить ее как можно дальше от конечной стороны.
Если моя кнопка представлена ​​буквой C, то порядок слева направо или начало-конец должно быть A B C.
Я пытаюсь добавить его, используя дополнительные элементыtrailingnavigationbarbuttonitems:

Код: Выделить всё

class DocumentBrowserViewController: UIDocumentBrowserViewController, UIDocumentBrowserViewControllerDelegate
{
override func viewDidLoad()
{
super.viewDidLoad()

let button = UIBarButtonItem(...)

additionalTrailingNavigationBarButtonItems.append(button)
}
}

< /code>
Это всегда добавляет его в качестве самого левого элемента. Порядок при загрузке представления - c a b 
, где c представляет мою кнопку.
Вот некоторые вещи, которые я пробовал:
  • Добавить его в viewwillappear - те же результаты.
    Добавить его с помощью rightbarbuttonitems < /code> - вообще не отображается. < /li> его по адресу: 0 вместо добавления — те же результаты.
  • Добавьте его с задержкой, используя DispatchQueue.main.async — те же результаты.
Я экспериментировал с задержкой в ​​DispatchQueue, чтобы посмотреть, не добавляю ли я его слишком рано в процессе, когда два других уже еще не добавлено. Даже при использовании 5-секундной задержки моя кнопка после добавления все равно будет находиться слева. В этом случае я увидел загрузку представления с двумя кнопками по умолчанию, а затем через 5 секунд моя кнопка была добавлена ​​и появилась слева.
Поэтому я добавил еще одну проверку длины extraTrailingNavigationBarButtonItems непосредственно перед добавлением моей кнопки, и он всегда равен нулю. Это объясняет, почему независимо от того, как я добавляю к нему свою кнопку, моя кнопка всегда появляется в крайнем левом углу — потому что в этом массиве больше ничего нет.
Другой способ убедиться в этом — попытаться вставить(at: 1) даже после 5-секундной задержки. Визуально две другие кнопки присутствуют, но это приведет к ошибке индекса вне диапазона и аварийному завершению работы приложения.
Как разместить кнопку дальше в конце/справа? из этих двух кнопок по умолчанию?

Подробнее здесь: https://stackoverflow.com/questions/793 ... m-is-alway
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»