0

我有带有 3 个选项卡的选项卡控制器,其中包含导航控制器:

// account view
UINavigationController * firstNavController = [[UINavigationController alloc]initWithRootViewController: viewController1];
viewController2.tabBarItem = [[UITabBarItem alloc]initWithTabBarSystemItem:UITabBarSystemItemFavorites tag:2];

// book view
UINavigationController * secondNavController = [[UINavigationController alloc]initWithRootViewController: viewController2];
viewController3.tabBarItem = [[UITabBarItem alloc]initWithTabBarSystemItem:UITabBarSystemItemFavorites tag:3];

// invite view
UINavigationController * thirdNavController = [[UINavigationController alloc]initWithRootViewController: viewController3];


CATransition *transition = [CATransition animation];
transition.duration = 0.7f;
transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
transition.type = kCATransitionFade;

[firstNavController.view.layer addAnimation: transition forKey:nil];
[secondNavController.view.layer addAnimation: transition forKey:nil];
[thirdNavController.view.layer addAnimation: transition forKey:nil];

_tabBarController.viewControllers = [[NSArray alloc] initWithObjects: firstNavController, secondNavController, thirdNavController,  nil];

我有一个带有右键的导航栏,可让人们转到“我的帐户”页面。不使用导航控制器怎么办?例如,如果人们单击标签栏按钮 1,他们会得到一个导航控制器(带有他们可以选择的服务列表)。如果他们点击右上角的“我的帐户”按钮,它应该打开一个新的导航控制器,底部有标签栏,这样他们就无法点击“我的帐户”页面上的后退按钮(因为这是这个新导航中的根控制器控制器。

我怎样才能做到这一点?

基本上,我想从另一个视图控制器(控制器 2)打开一个新的视图控制器(控制器 1 - 我的帐户),而不将该新视图控制器推入控制器 2 的导航控制器。控制器 1 应该在底部有标签栏,但是没有后退按钮。

4

2 回答 2

1

从控制器 2,您可以使用它切换到第一个控制器(我假设您的意思是第一个选项卡上的控制器):

self.tabBarController.selectedIndex = 0;

我认为您可以使用 self.navigationBarHidden = YES 在第一个控制器的 viewDidAppear 方法中隐藏导航栏

于 2012-12-02T05:08:17.543 回答
0

而不是推动你的LoginViewController,尝试使用presentModalViewController

在您的导航rightBarButton操作中给出

[self presentModalViewController:loginViewController animated:YES];
于 2012-12-05T11:17:52.633 回答