2012-04-02 3 views
1

У меня есть приложение, которое имеет несколько видов. В одном представлении я хотел бы добавить UITabBarController.Как настроить UITabBarController для просмотра?

В другом приложении я использовал это, чтобы добавить UITabBarController в rootViewController, но я не уверен, что это даже правильный способ сделать это.

в .h

@property (nonatomic, retain) IBOutlet UITabBarController *tabBarController; 

в .м

@synthesize tabBarController=_tabBarController; 
self.window.rootViewController = self.tabBarController; 
+0

если йо Вам нужно добавить панель вкладок для одного представления, а затем использовать UITabBar, а не UITabBarController. – priyanka

+0

Невозможно добавить UITabBarController в представление. – dasdom

+0

вы хотите добавить панель вкладок между приложением или корнем? – Hiren

ответ

3

В одном из моего приложения я использовал этот код для установки tabbarcontroller между приложением

определить контроллер TabBar в AppDelegate.m

self.tabBarController = [[UITabBarController alloc] init]; 
self.tabBarController.delegate=self; 
self.tabBarController.selectedIndex=0; 
self.tabBarController.delegate=self; 


- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController{ 
//NSUInteger index=[[tabBarController viewControllers] indexOfObject:viewController]; 

    // return YES; 
} 

Нанести ниже кода, где вы хотите, чтобы продвинуть ваш контроллер с контроллером бар вкладки

AppDelegate *delegate = (AppDelegate *)[[UIApplication sharedApplication] delegate]; 
    UIViewController *viewController1 = [[GeneralViewController alloc] initWithNibName:@"GeneralViewController" bundle:nil]; 
    UIViewController *viewController2 = [[MiscQuotationController alloc] initWithNibName:@"MiscQuotationController" bundle:nil]; 
    UIViewController *viewController4 = [[QuotationListController alloc] initWithNibName:@"QuotationListController" bundle:nil]; 
    UIViewController *viewController5 = [[ChargesViewController alloc] initWithNibName:@"ChargesViewController" bundle:nil]; 
    UIViewController *viewController7 = [[SalesPartViewController alloc] initWithNibName:@"SalesPartViewController" bundle:nil]; 

    /// tab button title 
    viewController1.title = @"Basic information"; 
    viewController2.title = @"Misc Quotation"; 
    viewController4.title = @"Quotation Line"; 
    viewController5.title = @"Charges"; 
    viewController7.title = @"Sales Part Stock"; 

    // tab button Images 
    viewController1.tabBarItem.image = [UIImage imageNamed:@"general.png"]; 
    viewController2.tabBarItem.image = [UIImage imageNamed:@"misle.png"]; 
    viewController4.tabBarItem.image = [UIImage imageNamed:@"history.png"]; 
    viewController5.tabBarItem.image = [UIImage imageNamed:@"charges.png"]; 
    viewController7.tabBarItem.image = [UIImage imageNamed:@"shoebox.png"]; 

    delegate.tabBarController = [[UITabBarController alloc] init]; 
    delegate.tabBarController.selectedIndex = 0; 
    delegate.tabBarController.viewControllers = [NSArray arrayWithObjects:viewController1, viewController2, viewController4, viewController5, viewController7, nil]; 
    delegate.tabBarController.modalTransitionStyle = UIModalTransitionStyleCoverVertical; 
    [self.navigationController pushViewController:delegate.tabBarController animated:YES]; 
0

Вместо того, чтобы писать этот

self.window.rootViewController = self.tabBarController;

Записать это в коде:

[self.window addSubview:self.tabBarController.view];

Вы не можете добавлять UITabbarController к UIViewController, но вы можете добавить UITabBar в UIViewController's вид.

Надеется, что это может помочь вам .......

+0

Ну, «self.window» - проблема. Как мне получить доступ к этому в UIViewController? – eemceebee

+0

, используя объект вашего класса AppDelegate ....... Также TabbarController должен быть объявлен в классе AppDelegate. –

Смежные вопросы