UIKit
не является потокобезопасным, поэтому я подозреваю, что загрузка пера во вторичный поток должна быть довольно небезопасной. Просто загрузка пера в UIViewController и отображение его из основного потока может сработать для вас и может сломаться в другом месте.
Я полагаю, вы знаете о performSelectorOnMainThread:withObject:waitUntilDone
для отправки метода из вторичного потока в основной поток. Вы можете попытаться использовать это из вторичного потока, когда хотите загрузить перо.
EDIT:
Как насчет предварительной загрузки пера, пока рабочий поток извлекает данные, поэтому, когда рабочий поток завершил, основной поток должен только отобразить представления пера?