隐藏导航控制器和标签栏的后退按钮

时间:2011-11-27 05:51:25

标签: iphone objective-c ios xcode

我有一个小应用程序(仅用于测试目的),其中包含一个带有两个选项卡的标签栏控制器:tab1& tab2,每个选项卡包含一个导航控制器,每个导航控制器包含一个视图:view1&视图2。在view1上有一个按钮,当点击时会使用pushViewController消息将视图推送到view2(即tab2),当我想要返回时,左上角有默认的后退按钮,将我带回view1 ,所以一切正常,现在,我使导航控制器隐藏在view1上,当我点击view1上的按钮它带我到view2,我注意到那里没有后退按钮,所以我创建了我的自定义后退按钮view2.m中的代码:

- (void)viewDidLoad
{
[super viewDidLoad];


UIBarButtonItem* backButton = [[UIBarButtonItem alloc] initWithTitle: NSLocalizedString(@"Back", @"back button text") style:UIBarButtonItemStylePlain target:self action:@selector(barButtonBackPressed:)];
self.navigationItem.leftBarButtonItem = backButton;
[backButton release];

}

-(void)barButtonBackPressed:(id)sender{    
   view1ViewController *view1VC = [view1ViewController alloc];
  [self.navigationController pushViewController:view1VC animated:YES];
  self.navigationController.navigationBarHidden = true;
  Application1AppDelegate *appDelegate = (Application1AppDelegate *)[[UIApplication sharedApplication] delegate];
appDelegate.tabBarController.selectedIndex = 0;

[view1VC release]; 

}

当我按下后退按钮时,它将正确打开view1但没有导航控制器的常规动画,这是因为标签栏控制器的selectedIndex属性,如果我删除此属性将会出现一些奇怪的动画(当然这是因为导航控制器的navigationBarHidden属性,我在这里使用它隐藏导航栏以匹配view1布局),在这种情况下,选择了错误的选项卡(tab2)。

如何在这种情况下模拟view2中的正确行为或后退按钮:

  • 我想要后退按钮的常规动画。

  • 我希望在按下后退按钮(tab1)时选择正确的标签。 ??

提前非常感谢你。

0 个答案:

没有答案