Реализация контроллера панели вкладок
В этом представлении присутствуют 5 кнопок (извините, по-французски)
я хочу реализовать tabbarcontroller, когда я выбираю одну кнопку, он будет переходить к tabbarControllerClass моя проблема, что я не знаю, как запрограммировать действие в каждой кнопке, чтобы нажать на это представление
это пример mesAlertbuttonpressed
-(IBAction)MesAlertsButtonPressed:(id)sender{
TabBarControllerViewController *tabBarControllerViewController = [[TabBarControllerViewController alloc]initWithNibName:@"TabBarControllerViewController" bundle:nil];
tabBarControllerViewController.TypeView=@"Alert";
[self.navigationController pushViewController:tabBarControllerViewController animated:YES];
3 ответа
Создать метод в AppDelegate.m
класс и вызовите этот метод, когда вы хотите отобразить tabController Например:
-(void)setRootViewControllerTab1{
UIViewController *viewController1, *viewController2, *viewController3, *viewController4, *viewController5;
UINavigationController *navviewController1 , *navviewController2, *navviewController3, *navviewController4, *navviewController5;
viewController1 = [[[HomeViewController alloc] initWithNibName:@"HomeViewController" bundle:nil] autorelease];
navviewController1=[[UINavigationController alloc]initWithRootViewController:viewController1];
viewController2 = [[[HowItWorksViewController alloc] initWithNibName:@"HowItWorksViewController" bundle:nil] autorelease];
navviewController2=[[UINavigationController alloc]initWithRootViewController:viewController2];
viewController3 = [[[JoiniAppointViewController alloc] initWithNibName:@"JoiniAppointViewController" bundle:nil] autorelease];
navviewController3=[[UINavigationController alloc]initWithRootViewController:viewController3];
viewController4 = [[[BecomeBussUserViewController alloc] initWithNibName:@"BecomeBussUserViewController" bundle:nil] autorelease];
navviewController4=[[UINavigationController alloc]initWithRootViewController:viewController4];
viewController5 = [[[ContactUsViewController alloc] initWithNibName:@"ContactUsViewController" bundle:nil] autorelease];
navviewController5=[[UINavigationController alloc]initWithRootViewController:viewController5];
self.tabBarController.viewControllers = [NSArray arrayWithObjects:navviewController1, navviewController2,navviewController3,navviewController4,navviewController5, nil];
self.window.rootViewController = self.tabBarController;
[self.window makeKeyAndVisible];
}
и вызвать этот метод для события нажатия кнопки, как показано ниже..
AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
[appDelegate setRootViewControllerTab1];
Используйте эту строку кода для вызова метода для создания панели вкладок.
AppDelegate *appDelegateObj = (AppDelegate *)[[UIApplication sharedApplication] delegate];
[appDelegateObj createTabBar];
Актуальный метод
-(void)createTabBar
{
self.tabBarController.customizableViewControllers = nil;
Home *homeObj = [[Home alloc] initWithNibName:@"Home" bundle:nil];
UINavigationController *tab1Controller = [[UINavigationController alloc] initWithRootViewController:homeObj];
ChatList *chatListObj = [[ChatList alloc] initWithNibName:@"ChatList" bundle:nil];
UINavigationController *tab2Controller = [[UINavigationController alloc] initWithRootViewController:chatListObj];
Settings *settingObj = [[Settings alloc] initWithNibName:@"Settings" bundle:nil];
UINavigationController *tab3Controller = [[UINavigationController alloc] initWithRootViewController:settingObj];
self.tabBarController.viewControllers = [NSArray arrayWithObjects: tab1Controller, tab2Controller,tab3Controller, nil];
self.tabBarController.selectedIndex=0;
self.tabBarController.delegate = self;
self.window.backgroundColor=[UIColor clearColor];
self.tabBarController.view.backgroundColor=[UIColor clearColor];
self.window.rootViewController = self.tabBarController;
[self.window makeKeyAndVisible];
}
Я не уверен, что правильно вас понял. Вы просматриваете уже контролируется контроллером представления? Если нет, то ваши действия не будут работать.
Вы можете попытаться показать это модально:
-(IBAction)MesAlertsButtonPressed:(id)sender
{
TabBarControllerViewController *tabBarControllerViewController = [[TabBarControllerViewController alloc]initWithNibName:@"TabBarControllerViewController" bundle:nil];
tabBarControllerViewController.TypeView=@"Alert";
[self presentModalViewController:tabBarControllerViewController animated:YES];
}
в противном случае вы должны прочитать документы о UINavigationController.