Ios 以编程方式而不是按用户在UITabBarController上切换视图时的不同操作?
我有一个包含5个独立视图(5个选项卡)的选项卡导航应用程序。 除了:在一种情况下,我想通过编程从一个视图(选项卡)切换到另一个视图(选项卡) 切换工作正常,但我也希望通过编程方式切换来传递参数,因此目标视图的外观将与用户按tab键激活的视图不同Ios 以编程方式而不是按用户在UITabBarController上切换视图时的不同操作?,ios,uitabbarcontroller,Ios,Uitabbarcontroller,我有一个包含5个独立视图(5个选项卡)的选项卡导航应用程序。 除了:在一种情况下,我想通过编程从一个视图(选项卡)切换到另一个视图(选项卡) 切换工作正常,但我也希望通过编程方式切换来传递参数,因此目标视图的外观将与用户按tab键激活的视图不同 有没有合适的方法来实现这一点(除了定义全局变量;)?我的应用程序委托中有挂钩来帮助实现这一点。我在代码中就是这样做的(请注意,每个选项卡内都有一个UINavigationController): 使用协议和委托而不是全局变量,基本上这就是我想要的:我不需
有没有合适的方法来实现这一点(除了定义全局变量;)?我的应用程序委托中有挂钩来帮助实现这一点。我在代码中就是这样做的(请注意,每个选项卡内都有一个UINavigationController):
使用协议和委托而不是全局变量,基本上这就是我想要的:我不需要事件转换,我只需要在激活ViewController类之前访问它。
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
}
}];