标签栏有5个项目,侧面菜单有大约12个菜单.
全方位菜单功能来自Tab 1&侧面菜单可以在标签栏中的所有视图中访问.
这意味着如果我在标签2,即使我可以访问侧面菜单.当我点击标签1中的侧面菜单项时,我将转到标签1,然后导航.
我想做的是让我们说如果我从侧面菜单点击投诉菜单,我想去投诉视图控制器.
我使用的代码如下.
// go to first tabself.tabbarController.selectedindex = 0;// Now navigateComplainsVIEwController *sVIEwCon = [self.storyboard instantiateVIEwControllerWithIDentifIEr:@"Complains"];CATransition *Transition = [CATransition animation];Transition.duration = 0.5;Transition.type = kCATransitionFade;[self.navigationController.vIEw.layer addAnimation:Transition forKey:kCATransition];[self.navigationController pushVIEwController:sVIEwCon animated:NO];
我有两个场景
情景1(正确)
我在标签1上,点击侧边菜单中的抱怨.当我点击时,我使用上面的代码成功地使用了ComplainsVIEwController.
情景2(正确)
我在标签2上,点击侧边菜单中的抱怨.当我点击,我成功地到Tab 1,但我不导航到ComplainsVIEwController.当我点击回到标签2,我看到投诉控件在标签2中打开.
任何想法如何首先切换到Tab然后导航到另一个vIEwcontroller?
编辑1
以下是我的基本结构.
解决方法 看起来你在切换标签后忘记切换导航控制器.尝试实现UITabbarControllerDelegate方法:
- (voID)tabbarController:(UITabbarController * _Nonnull)tabbarController dIDSelectVIEwController:(UIVIEwController * _Nonnull)vIEwController { self.currentNavigationController = (UINavigationController *)vIEwController;}
然后当您手动切换标签时使用以下代码:
// go to first tabself.tabbarController.selectedindex = 0;// Manually call delegate method[self tabbarController:self.tabbarController dIDSelectVIEwController:self.tabbarController.selectedVIEwController];// Now navigateComplainsVIEwController *sVIEwCon = [self.storyboard instantiateVIEwControllerWithIDentifIEr:@"Complains"];CATransition *Transition = [CATransition animation];Transition.duration = 0.5;Transition.type = kCATransitionFade;[self.currentNavigationController.vIEw.layer addAnimation:Transition forKey:kCATransition];[self.currentNavigationController pushVIEwController:sVIEwCon animated:NO];
为了实现这一目标,您需要创建新的属性来保持currentNavigationController.
总结以上是内存溢出为你收集整理的ios – 切换标签栏,然后导航到另一个视图控制器全部内容,希望文章能够帮你解决ios – 切换标签栏,然后导航到另一个视图控制器所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)