Alf*_*sen 21 iphone objective-c uiviewcontroller ios ios7
简单的问题,我已经对UIViewControllers 之间的自定义导航/转换进行了大量探索,目前还不清楚以下内容:
我正在寻找类似于UIPageViewController提供的行为(基于非堆栈的导航向前和向后通过内容的"页面").但我希望能够自定义过渡,并且我希望过渡链接到自定义UIPanGestureRecognizer.
似乎UIViewControllerInteractiveTransitioning协议提供了我想要的一些东西(交互性,自定义转换).但因为跳变与单独调用presentViewController:animated:和dismissViewControllerAnimated:它好像它专门建立与基于堆栈的导航(即使用UINavigationController,UITabBarController模态演示).也就是说它看起来不像是喜欢它UIPageViewController.
如果我使用UIViewController包容来构建类似于的自定义容器UIPageViewController(请参阅此处的进展演示),我可以将UIViewControllerInteractiveTransitioning协议集成到此中以驱动转换吗?或者我需要自己滚动(目前我有一个粗略的手动实现交互式转换)?
我在我的应用程序中做了很多自定义动画,大多数开发人员都回避这些动画,因为我在工作中使用了大量 UIViewControlloer Containment。
这是获得您正在寻找的过渡的最简单方法。
我将这样做:
创建一个基础视图控制器;我们称之为 MainViewController。它将引用所有其他视图控制器并保存转换的逻辑。它还应该遵循我们定义为 ViewXControllerDelegate 的协议。
创建您的其他视图控制器;我们称它们为 View1Controller、View2Controller、View3Controller。添加它们每个的实例作为 MainViewController 的私有属性。在 MainViewController 的 init 方法中,实例化它们并将它们的视图添加为 MainViewController 视图的子视图。应该看起来像这样:
self.v1c = [[View1Controller alloc]init];
[self addChildViewController:self.v1c];
[self.v1c didMoveToParentViewController:self];
//Setup each subview so that its frame makes it off screen or
//On screen depending on the app state and where you want each
//subview to animate to/from
[self.view addSubview:self.v1c.view];
....
Run Code Online (Sandbox Code Playgroud)在每个 ViewXController 中设置一个 UIPanGestureRecognizer,将其目标和选择器设置为父视图控制器 (MainViewController)。
处理 MainViewController 类中的所有逻辑,其中考虑滑动距离、应用程序状态、每个视图的位置(使用 ViewXController 中的辅助属性,如“inactiveFrame”或“activeFrame”,其中它们之间的动画根据平移手势中发生的移动百分比。
| 归档时间: |
|
| 查看次数: |
899 次 |
| 最近记录: |