在UITabBarController上以编程方式而不是用户切换View的不同操作?

时间:2014-04-08 21:43:50

标签: ios uitabbarcontroller

我有一个带有标签导航的应用程序,包含5个独立视图(5个标签)。 除了:在一种情况下,我想以编程方式从一个视图(选项卡)切换到另一个视图。

切换有效,但我也希望通过编程方式切换传递参数,因此目标视图的外观与用户按下标签时激活的方式不同?

有没有合适的方法来实现这个目标(除了定义全局变量;)?

1 个答案:

答案 0 :(得分:0)

我在App Delegate中有一些帮助来帮助解决这个问题。这就是我在代码中的做法(注意每个选项卡里面都有一个UINavigationController):

SLAppDelegate *delegate = (SLAppDelegate *)[[UIApplication sharedApplication] delegate];

UIView * fromView = delegate.tabController.selectedViewController.view;
UIView * toView = [[delegate.tabController.viewControllers objectAtIndex:3] view];

[UIView transitionFromView:fromView
                            toView:toView
                          duration:0.5
                           options: UIViewAnimationOptionTransitionFlipFromRight
                        completion:^(BOOL finished) {
                            if (finished) {
                                delegate.tabController.selectedIndex = 3;

                                MapViewController *map = (MapViewController *)[delegate.navMapsController.viewControllers objectAtIndex:0]; // map view is the only VC in the navController 
                                // do something with the map view 
                            }
                        }];