2009-09-24 3 views
1

Есть ли разница между этими двумя строками кода?Разница между методами переключения вкладок

self.tabBarController.selectedViewController = [self.tabBarController.viewControllers objectAtIndex:1]; 

и

self.tabBarController.selectedIndex = 1; 

Мое приложение просто разбилось на верхнем заявлении поэтому оно может иметь некоторые проблемы с памятью. Существуют ли какие-либо преимущества одного метода над другим?

ответ

0

Собственно, установка свойства selectedIndex будет делать что-то похожее, как в вашем первом утверждении, но, вероятно, проведет еще некоторую проверку. Будет разница, когда в вашем tabBar будет более 5 контроллеров, поэтому, когда есть вкладка «Дополнительно». Это то, что документация говорит нам:

- SelectedIndex

Это свойство номинально представляет собой индекс в массиве свойства viewControllers. Однако, если выбранный контроллер просмотра в настоящее время является контроллером навигации More, это свойство содержит значение NSNotFound. Установка этого свойства изменяет выбранный контроллер представления на тот, который указан в указанном индексе в массиве viewControllers. Чтобы выбрать контроллер навигации More, вы должны изменить значение свойства selectedViewController.

В версиях iPhone OS до версии 3.0 это свойство отражает только индекс выбранного элемента панели вкладок. Попытка установить это значение в индекс контроллера вида, который не отображается на панели вкладок, но управляется управляющим контроллером More, не имеет никакого эффекта.

+0

Интересно. Благодарю. – Bryan