Вопрос

Любая идея, почему это работает:

[[[[[self tabBarController] tabBar] items] objectAtIndex:2] 
                                          setBadgeValue:@"Hello"];

Но это не так?

[[self tabBarItem] setBadgeValue:@"Hello"];

Я бы предпочел не предоставлять явный индекс панели вкладок (2 в коде выше). Кроме того, есть ли способ получить индекс панели вкладок из контроллера представления в случае, когда первый фрагмент - единственный способ сделать эту работу?

Спасибо.

Это было полезно?

Решение

Является ли TabBaritem, который вы ссылаетесь на то, что на самом деле элемент в TabBarViewController? Если это не так, то есть ваша проблема. Вы можете знать индекс вашего ViewController, потому что вы определяете заказ, когда вы устанавливаете контроллеры представления в вашем TabBarViewController, поэтому, если вы установите ViewController сначала в вашем TabBarViewController, его кнопка будет иметь индекс 0.

С вашим комментарием ваш вопрос стал для меня более ясным, как уже говорится в ответе, возможно, как только вы установите UitabbarController ViewController, он захватывает свой TabBaritem, а затем изменения в этом свойстве ViewController не обновляются TabBarViewController (я могу ошибаться, это предположение. )

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top