如何从另一个 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 单击的主要内容,如果未能解决你的问题,请参考以下文章
从另一个被关闭的 vc 访问 viewcontroller 时的运行方法