Как я могу создать представление вкладки программно на iOS - PullRequest
5 голосов
/ 07 мая 2011

Для приложения для iPhone, как я могу создать представление вкладки программно, предпочтительно в Objective-C?

Ответы [ 2 ]

10 голосов
/ 07 мая 2011

Создать UITabBar с помощью UITabBarController довольно просто.Следующий пример должен работать в вашем классе AppDelegate.

Интерфейс делегата приложения

Во-первых, в интерфейсе мы определим наш UITabBarController .

UITabBarController *tabBarController;

Реализация делегата приложения

Затем в методе application:didFinishLaunchingWithOptions: файла реализации мы инициализируем наш контроллер панели вкладок.

// Initialise our tab bar controller
UITabBarController *tabBarController = [[UITabBarController alloc] init];

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

// Create your various view controllers
UIViewController *testVC = [[TestViewController alloc] init];
UIViewController *otherVC = [[OtherViewController alloc] init];
UIViewController *configVC = [[ConfigViewController alloc] init];

Поскольку метод setViewControllers: animated: требует массиваконтроллеры представления, мы добавим наши контроллеры представления в массив и затем освободим их.(Поскольку NSarray сохранит их.)

// Put them in an array
NSArray *viewControllers = [NSArray arrayWithObjects:testVC, otherVC, configVC, nil];
[testVC release];
[otherVC release];
[configVC release];

Затем просто предоставьте UITabBarController массив контроллеров представления и добавьте его в наше окно.

// Attach them to the tab bar controller
[tabBarController setViewControllers:viewControllers animated:NO];

// Put the tabBarController's view on the window.
[window addSubview:[tabBarController view]];    

Наконец, убедитесь, что вывызовите [tabBarController release]; в вашем методе dealloc.

Реализация контроллера представления

Внутри каждого из ваших контроллеров представления вы также захотите установить заголовок и значокдля вкладки в методе init следующим образом:

// Create our tab bar item
UITabBarItem *tabBarItem = [self tabBarItem];
UIImage *tabBarImage = [UIImage imageNamed:@"YOUR_IMAGE_NAME.png"];
[tabBarItem setImage:tabBarImage];
[tabBarItem setTitle:@"YOUR TITLE"];
0 голосов
/ 07 мая 2011

Это то, как мы должны программно создавать вкладки

UINavigationController *BandNavigationController3;
AudienceSettingsViewController *audienceSettingsViewView =[[AudienceSettingsViewController alloc]initWithNibName:@"AudienceSettingsViewController" bundle:nil];
BandNavigationController3 = [[UINavigationController alloc]initWithRootViewController:audienceSettingsViewView];
BandNavigationController3.tabBarItem.title = @"Settings";
BandNavigationController3.tabBarItem.image = [UIImage imageNamed:@"settings.png"];

[BandNavigationController3.tabBarItem initWithTabBarSystemItem:UITabBarSystemItemFavorites tag:4];
BandNavigationController3.navigationBar.hidden = YES;

[bandTabBarArray addObject:BandNavigationController3];
[BandNavigationController3 release];
[audienceSettingsViewView release];

[tabBarController setViewControllers:bandTabBarArray]; 
[bandTabBarArray release];
...