我的理解是,为了在xib文件之间移动,通常使用 导航控制器,标签控制器或Flipside控制器或它们的组合。
但我的问题是 - 我可以编写自己的自定义控制器,并使用Core Animation在视图之间移动,或者这些默认控制器(导航/标签/翻转)是在xib文件之间转换的唯一选项吗?
答案 0 :(得分:2)
是的,你可以。一种方法是使用一个根级视图控制器,称之为RootViewController,它知道子视图控制器。然后,只需设置并运行一个动画块,从RootViewController中删除一个childViewController的视图,并将另一个childViewController的视图添加到RootViewController。可能会通过某种操作方法触发动画块。
答案 1 :(得分:0)
您可以使用rootController,在这种情况下您将使用
/ * RootController * /
- (void)showSomething:(id)_example { self.view = somethingController.view; //设置视图 somethingController.example = _example; //您甚至可以在视图之间设置属性 }
/ * UIViewController + RootControllerAccess * /
// .H
导入“RootController.h”
@interface UIViewController(RootControllerAccess) - (RootController *)rootController; @end
// .M
导入“UIViewController + RootControllerAccess.h”
@implementation UIViewController(RootControllerAccess)
- (RootController *)fadeController { return(RootController *)self.view.window.rootViewController; }
@end
/ *在这里,您可以随时调用任何视图
通过这样做你可以在任何地方使用showSomething:[self.rootController showSomething:nil];