如何从另一个viewController访问tabBar单击

时间:2011-10-10 07:20:48

标签: iphone ios4 ios-4.2 ios5

我的主页是一个tabbarView,现在,我有一个presentModalView控制器,而且我们知道modalview占据了整个屏幕,现在这个视图有按钮,点击其中我要关闭模态视图并选择我的第二个标签主页,我该怎么办呢。

谢谢和问候 兰吉特

2 个答案:

答案 0 :(得分:4)

假设您的TabbarController实例位于appDelegate中。当您关闭modalView时,您发布通知。您的app委托将观察此通知,当它收到它时,它将调用[myTabController setSelectedIndex:2];以下可能是代码:

// modalViewController
-(void)dismiss
{
   //your regular code
   [[NSNotificationCenter defaultCenter] postNotificationName:@"modalDismissed" object:nil];
}
//appDelegate
-(void)applicationDidFinish....
{
  //your regular code
  [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(selectAnotherTab)   name:@"modalDismissed" object:nil];
}
-(void)selectAnotherTab
{
   [myTabController setSelectedIndex:2];
}

答案 1 :(得分:0)

这里你必须使用tabbarcontroller的appdelegate类对象来chage索引或制表符 尝试以下

 [self.tabBarController setSelectedViewController:<#(UIViewController *)#>];
 or
  [self.tabBarController setSelectedIndex:<#(NSUInteger)#>];

例如

app_appAppDelegate *appdelegate=(app_appAppDelegate *)[[UIApplication sharedApplication]delegate];

[appdelegate.tabBarController setSelectedIndex:2];

我得到粗略的代码可能会出错,所以请检查

修改

 app_appAppDelegate *appdelegate=(app_appAppDelegate *)[[UIApplication  sharedApplication]delegate];

[appdelegate.tabBarController  setSelectedViewController:[appdelegate.tabBarController.viewControllers objectAtindex:1]];