【问题标题】:suffering with UITabbaritems遭受 UITabbbaritems 的折磨
【发布时间】:2012-06-21 11:44:43
【问题描述】:

这几天我一直在忍受UITabBarItems 的折磨。

我以编程方式完成了我的应用程序,而不是使用 Interface Builder。 我有一个UINavigationBar 和一个UITabbarController

当我继续导航时从主页(我的意思是当我移动到下一页时),当我点击下一个选项卡项目(联系人)时,当我再次点击主页按钮时,它没有移动到主页,它保留在我离开那个页面的上一页,它根本没有重定向到主页,

我已将UITabbarController-code 放置在我的应用程序委托中:

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 

请给我一些建议,或者对我有用的东西。

【问题讨论】:

  • 由于您提出问题的方式,我不确定我是否理解您的问题。你能帮我简化一下吗?你想要什么?
  • 这和你已经问过的问题不一样吗?无法以编程方式为 uitabbaritem 设置操作。我相信您已经复制了自己的问题。
  • 我得到了tabbar的,现在我又遇到了一个问题,所以我又问了一遍

标签: iphone objective-c ios uitabbarcontroller uitabbaritem


【解决方案1】:

UITabbarController 的默认行为是,如果您点击一个选项卡并且此选项卡包含一个导航控制器,您将获得位于导航控制器视图控制器堆栈顶部的页面。

为避免这种情况,您必须在点击选项卡时弹出ToRootViewController。

如果你实现了

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

它应该可以解决问题。

【讨论】:

  • 我认为不需要“navigationController” [viewController popToRootViewControllerAnimated:NO];
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-21
  • 2017-07-30
  • 1970-01-01
相关资源
最近更新 更多