Uitabbar Badging
-
21-09-2019 - |
Вопрос
Любая идея, почему это работает:
[[[[[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 (я могу ошибаться, это предположение. )