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

Posted

技术标签:

【中文标题】如何从另一个 viewController 访问 tabBar 单击【英文标题】:How to access tabBar click from another viewController 【发布时间】:2011-10-10 07:20:47 【问题描述】:

我的主页是一个 tabbarView,现在,我有一个 presentModalView 控制器,我们知道 modalview 占据了全屏,现在这个视图有按钮,点击它我想关闭 modalview 并选择我的第二个选项卡主页那么我该怎么做。

感谢和问候 兰吉特

【问题讨论】:

【参考方案1】:

假设您的 TabbarController 实例位于 appDelegate 中。当您关闭 modalView 时,您会发布通知。您的应用程序委托将观察此通知,当它收到它时,它将调用 [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];

【讨论】:

【参考方案2】:

这里你必须使用 tabbarcontroller 的 appdelegate 类对象来更改索引或选项卡 尝试关注

 [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]];

【讨论】:

-(void)menuTab [self dismissModalViewControllerAnimated:YES]; MenuViewController *menuView =[[MenuViewController alloc]initWithNibName:@"MenuView" bundle:nil]; [self.tabBarController setSelectedViewController:menuView]; [self.tabBarController setSelectedIndex:2]; 但它不工作,我无法进入第二个选项卡上的视图,所以请帮帮我 @Ranjit Add -Edit 之前的部分代码 [self dismissModalViewControllerAnimated:YES];

以上是关于如何从另一个 viewController 访问 tabBar 单击的主要内容,如果未能解决你的问题,请参考以下文章

快速从另一个访问 Viewcontroller 的实例

从另一个类访问 viewController 元素

从另一个被关闭的 vc 访问 viewcontroller 时的运行方法

如何从另一个 UIView 类访问 UIControl 的值

从另一个类访问 UI 图像

如何从另一个 ViewController 中选择 UITableViewController 行?