Я думаю, что Морион прав. Никогда не делайте что-либо с пользовательским интерфейсом из другого потока, кроме основного потока. У меня были самые смешные вещи, когда я делал это случайно.
Вы сказали:
Большая часть моего рисунка выполняется методами View (Will / Did) Appear. Или UITableViewController, который заполняется из потока.
Таким образом, контроллер заполняется другим потоком, что означает, что этот рисунок также выполняется в этом "другом" потоке. Попробуйте использовать performSelectorOnMainThread:withObject:waitUntilDone:
Взгляните сюда: Справочная документация