1

我想在我的应用程序中滑动以推送或弹出 ViewControllers ,我知道我可以向其中添加滑动手势。但是当我滑动屏幕时,我希望当前的 ViewController 跟随我的滑动手势,而下一个 ViewController 只需滑动即可。我该怎么做,谢谢!

4

3 回答 3

2

不可能用UINavigationController; 您必须构建自己的导航控制器(应该很容易),其中包含UIPanGestureRecognizer.

iOS 7 的编辑:您可能想要使用UIScreenEdgePanGestureRecognizer.

于 2013-03-21T06:31:47.780 回答
1

手势识别器具有动作方法,就像按钮一样。只需将其放在 action 方法中:

NextViewController *next = [[NextViewController alloc] init ....];
[self.navigationController pushViewController:next animated:YES];
于 2013-03-21T06:27:40.310 回答
0

阅读手势识别器。您可以创建它们并将其添加到对象上。例如

UILongPressGestureRecognizer *longTap = [[UILongPressGestureRecognizer alloc] 
                                         initWithTarget:self 
                                         action:@selector(longPress:)];
longTap.minimumPressDuration = 1.0;
[cell addGestureRecognizer:longTap];

在这里,我创建了 LongPress 识别器并将其添加到我的单元格中。如果我在我的单元格上长按(1.0 秒),它将调用选择器(长按:)。长按我可以编写任何代码。

-(void)longPress : (UILongPressGestureRecognizer *)rec {
   if (rec.state == UIGestureRecognizerStateBegan) {
   NSLog (@"I've longPressed");
   }
}

您可以通过相同的方式使用不同的识别器。

关于推送和弹出。它们是导航控制器的方法。Push - 在您向他展示的控制器上前进;

NextController *goNext = [[NextViewController alloc] init];
[self.navigationController pushViewController:goNext animated:YES];

它将转到 NextController。Pop - 返回上一个控制器。

在这里您不需要显示以前的控制器。只是对 navController 说回来

 [self.navigationController popViewControllerAnimated:YES];
于 2013-03-21T06:42:20.997 回答