2013-05-03 4 views
1

Я работаю над проектом ipad, UITabBarController (это также корень) имеет 5 вкладок.Переключатель переключателя UITabBarController в первый раз медленный

Вторая вкладка - это табличное представление, в котором есть довольно богатые элементы интерфейса.

Проблема в том, что каждый раз, когда я запускаю приложение и нажимаю на вторую вкладку, я буду заблокирован на 0,3 секунды, чтобы показать диспетчер представлений. Однако после первого входа на эту вкладку мне потребуется всего 0,03, чтобы снова войти в эту вкладку.

Так что я думал, что ViewDidLoad стоит слишком дорого, потому что я делаю много addSubView или reloadData. Так что я добавить

[libraryVC viewDidLoad]; 
[libraryVC viewWillAppear:YES]; 
[libraryVC viewDidAppear:YES]; 

в application:didFinishLaunchingWithOptions, я думаю, что если бы я сделать этот материал вид нагрузки, прежде чем пользователь ввести вторую вкладку, то не будет никакого блока.

Однако после того, как я протестировал этот подход, я обнаружил, что стоимость не уменьшается. Поэтому я предполагаю, что временная стоимость может использоваться в рендеринге представления, когда сначала показывается этот диспетчер представлений. Когда представление viewcontroller было показано ранее, следующее шоу будет быстрым. Но я не имею идеи решить эту проблему.

Я думаю, что эта проблема очень распространена, когда представление viewcontroller действительно сложно, так же как у кого-то есть идея подхода к решению этой проблемы? Или кто-нибудь может дать подробное описание причины, по которой происходит блок?

Спасибо за помощь!

ответ

0

Возможно, многопоточность методов и вызовов, требующих много времени, является решением, которое вы ищете. Если вы ищете «ios grand central dispatch» в Google, будут доступны некоторые большие ресурсы. Ссылка Apple Grand Central Dispatch является одной из лучших частей документации, которую они имеют.

Смежные вопросы