2012-06-21 4 views
-3

В течение нескольких дней я страдаю от UITabBarItem.страдает от UITabbaritems

Я выполнил свое приложение программным способом, не используя Interface Builder. У меня есть и UINavigationBar, и UITabbarController.

На домашней странице, когда я перехожу к навигации (я имею в виду, когда я перехожу на следующую страницу) в то время, когда я нажал следующий элемент вкладки (контакт), и снова, когда я нажал кнопку «домой», это не переход на главную страницу, то оставшийся с предыдущей страницей, где я оставил, что один, он не перенаправляет на главную страницу на всех,

Я поместил UITabbarController -код в моем приложении делегат:

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 
self.tabBarController = [[UITabBarController alloc] init]; 
viewController *vc = [[viewController alloc] init]; 
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:vc]; 
[navController.tabBarItem setTitle:@"Home"]; 
[navController.tabBarItem setImage:[UIImage imageNamed:@"home.png"]]; 

viewController1 *vc1 = [[viewController1 alloc] init]; 
UINavigationController *navController1 = [[UINavigationController alloc] initWithRootViewController:vc1]; 
[navController1.tabBarItem setTitle:@"Contact"]; 
[navController1.tabBarItem setImage:[UIImage imageNamed:@"contact.png"]]; 

viewController2 *vc2 = [[MapViewController alloc] init]; 
UINavigationController *navController2 = [[UINavigationController alloc] initWithRootViewController:vc2]; 
[navController2.tabBarItem setTitle:@"Info"]; 
[navController2.tabBarItem setImage:[UIImage imageNamed:@"info.png"]]; 

NSArray *viewControllers = [NSArray arrayWithObjects:navController, navController1,navController2, nil]; 
_tabBarController.delegate = self; 
[_tabBarController setViewControllers:viewControllers]; 

[self.window setRootViewController:_tabBarController]; 
[self.window makeKeyAndVisible]; 
return YES; 

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

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController 
- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item 

Пожалуйста, дайте мне предложения или что-то полезное для меня.

+0

Я не уверен, что понимаю ваш вопрос из-за того, как вы его положили. Можете ли вы упростить это для меня? Что ты хочешь? – Popeye

+0

Разве это не тот вопрос, который вы уже задали? Невозможно установить-действие-для-uitabbaritem-программно. Я считаю, что вы сделали дубликат своего вопроса. – Popeye

+0

У меня есть вкладка, теперь у меня другая проблема, поэтому я снова спросил –

ответ

0

Поведение UITabbarController по умолчанию заключается в том, что если вы нажмете вкладку, и эта вкладка содержит навигационный контроллер, вы получите страницу, которая находится поверх стека диспетчера контроля навигации.

Чтобы избежать этого, вы должны нажать PopToRootViewController при нажатии на вкладку.

Если вы реализуете

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController 
{ 
    [viewController.navigationController popToRootViewControllerAnimated:NO]; 
} 

он должен сделать трюк.

+0

Я думаю, что не нужно «navigationController» [viewController popToRootViewControllerAnimated: NO]; –

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