Вы также можете заранее загрузить контроллеры представления и затем вызвать [viewController view], чтобы принудительно загрузить представление.
Я не думаю, что есть гарантия, что загрузка изображения или пера безопасна для вызова из другого потока. Загрузка изображений может быть безопасной, если они сделали кэш изображений поточно-ориентированным (NSMutableDictionary является поточно-ориентированным IIRC), загрузка пера меньше, так как init / viewDidLoad / etc может ожидать выполнения в основном потоке.
Если вы предварительно загрузите вещи в основном потоке, он заблокирует пользовательский интерфейс. Вы можете смягчить это, например, с помощью executeSelector: withObject: afterDelay: и небольшой задержкой (0,01? 0,1?); обратите внимание, что нет никаких гарантий. В OS 4 вы можете загрузить каждое изображение в операции в [NSOperationQueue mainQueue]; установка приоритета операции на что-то маленькое (0 или 0,1?) должно гарантировать, что пользовательский интерфейс получает приоритет.
Также обратите внимание, что любая предварительная загрузка немного бессмысленна, если вы используете столько памяти, что получаете предупреждение о памяти.