UITabBarController,任何可能的方式来移动下一个视图控制器与水平滑动?
Posted
技术标签:
【中文标题】UITabBarController,任何可能的方式来移动下一个视图控制器与水平滑动?【英文标题】:UITabBarController, any possible way to move next View Controller with horizontal swipe? 【发布时间】:2012-12-04 10:20:21 【问题描述】:我是 ios 新手。不确定是否有可能带来以下逻辑。
1. UITabBarController has three UIViewController.
2. While Swipping horizontally in the second UIViewController, i want to move
to the third UIViewController.
有可能吗?如果是这样,请建议如何实现相同的目标。
【问题讨论】:
【参考方案1】:在第二个 ViewController 中,在 ViewDidLoad 中添加以下行
UISwipeGestureRecognizer *swipeRecognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(gotoNextPage:)];
[self.view addGestureRecognizer:swipeRecognizer];
[swipeRecognizer release];
并添加方法
-(void)gotoNextPage:(id)sender
[self.tabBarController setSelectedViewController:thirdViewController];
【讨论】:
你能试试下面的代码吗? for(UIViewController *viewController in self.tabBarController.viewControllers) if([viewController isKindOfClass:[THIRDVIEWCONTROLLER class]]) [self.tabBarController setSelectedViewController:viewController]; 【参考方案2】:您可以使用我正在做的触摸委托方法弹出到上一个视图
-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
UITouch *touch = [touches anyObject];
CGPoint startPosoition = [touch previousLocationInView:self.view];
CGPoint endPosition = [touch locationInView:self.view];
if (endPosition.x - startPosoition.x > 20)
[self.navigationController popViewControllerAnimated:YES];
else
【讨论】:
【参考方案3】:是的,可以做到。对于 1. 我假设您知道如何使用视图控制器设置基于标签栏的应用程序。对于 2. 在您的第二个视图控制器的视图和手势处理程序中实现滑动手势识别器:[self.yourTabBarController setSelectedIndex:2];
【讨论】:
【参考方案4】:使用此代码;
UISwipeGestureRecognizer *swipeGestureNextPage = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(loadPreviousPageClicked)];
swipeGestureNextPage.direction = UISwipeGestureRecognizerDirectionRight;
[self.view addGestureRecognizer:swipeGestureNextPage];
-(void)loadPreviousPageClicked
//use navigation controller here accordingly
就是这样。
【讨论】:
以上是关于UITabBarController,任何可能的方式来移动下一个视图控制器与水平滑动?的主要内容,如果未能解决你的问题,请参考以下文章
将 UITabbarController 放在 UINavigationController 中。可能会出现啥问题?
在 UITabBarController 中覆盖 UITabBar