Итак, у меня есть UIViewController
, который имеет вид UITabBar
. Я хочу вытащить JSON и решить, какие вкладки я хочу добавить в панель вкладок, поэтому мне нужно иметь возможность выбирать вкладки во время выполнения. Я хотел использовать метод UITabBarController setViewControllers:animated:
, чтобы добавить к нему список контроллеров представлений. Однако, поскольку я делаю это в контроллере представления, я не знаю, как получить доступ к контроллеру представления панели вкладок. Вот мой код ...Добавление UITabBarItem в UITabBar в UIViewController
Заголовок
#import <UIKit/UIKit.h>
@interface HealthTicketTabController : UIViewController <UITabBarDelegate, UITabBarControllerDelegate> {
NSArray *viewControllers;
IBOutlet UITabBar *tabBar;
UIViewController *selectedViewController;
// How do I link this the the tabBar's view controller???
UITabBarController *tabBarController;
}
@property (nonatomic, retain) NSArray *viewControllers;
@property (nonatomic, retain) IBOutlet UITabBar *tabBar;
@property (nonatomic, retain) IBOutlet UITabBarController *tabBarController;
@property (nonatomic, retain) UIViewController *selectedViewController;
@end
Источник
- (id)init
{
self = [super initWithNibName:@"HealthTicketTabView" bundle:nil];
if (self)
{
//Controllers for the tab view
HealthCardController *card = [[HealthCardController alloc] init];
MedicalExpensesController *medical = [[MedicalExpensesController alloc] init];
//Tab bar items to be displayed in the tab bar
card.tabBarItem = [[UITabBarItem alloc] initWithTabBarSystemItem:UITabBarSystemItemMostViewed tag:0];
medical.tabBarItem = [[UITabBarItem alloc] initWithTabBarSystemItem:UITabBarSystemItemMostViewed tag:1];
NSArray *array = [[NSArray alloc] initWithObjects:card, medical, nil];
//Set the tab bar's view controllers to the list
tabBarController.viewControllers = [NSArray arrayWithObjects:card, medical, nil];
[array release];
[card release];
[medical release];
}
return self;
}