Добавлять значки элементов TabBar по коду, а не по интерфейсу? - PullRequest
6 голосов
/ 13 января 2012

Я делаю приложение с помощью приложения Dapp, но мне не удается правильно добавить значки панели вкладок. Итак, есть ли способ добавить значки на панель вкладок, кодирующие его? Как что-то на AppDelegate, без использования Interface Builder. Спасибо!

Ответы [ 2 ]

6 голосов
/ 13 января 2012

UITabBarController получает всю информацию, необходимую для создания элемента панели вкладок для каждого контроллера представления, проверяя сам контроллер представления.

Все, что вам нужно сделать, это назначить массив контроллеров представления, используя -setViewControllers:animated:.

После добавления контроллера представления в контроллер панели вкладок контроллер панели вкладок будет проверять свойство tabBarItem контроллера представления.Этот элемент панели вкладок будет автоматически вставлен в панель вкладок контроллера панели вкладок.Вы можете инициализировать панель вкладок в каждом контроллере представления программно.Это выглядит примерно так ...

UITabBarItem *tabBarItem = [[UITabBarItem alloc] initWithTitle:@"Title" image:[UIImage imageNamed:@"someImage"] tag:1];

или если вы хотите использовать один из системных элементов ...

UITabBarItem *tabBarItem = [[UITabBarItem alloc] initWithSystemItem:UITabBarSystemItemFeatured tag:1];

Я предлагаю вам взглянуть на UITabBarController, UITabBarItem и UIViewController ссылки на классы и чтение соответствующих свойств.Документы заполнены необходимой информацией.

2 голосов
/ 13 января 2012

Да, так что, если у вас есть файлы 30x30 .png в ваших ресурсах, это просто вопрос добавления кода, как показано ниже. Вы должны поместить это в ваш метод init контроллера представления, связанного с индексом панели вкладок.

//get the tab bar item
            UITabBarItem *tbi = [self tabBarItem];

            //Give it a label
            [tbi setTitle:@"Item One"];

            //create a UIImage from a file
            UIImage *i = [UIImage imageNamed:@"MyItem.png"];

            //put that image on the tab bar item
            [tbi setImage:i];
...