到目前为止,我在我的应用程序中使用 UISplitViewController。要为 masterView 添加隐藏功能(移出屏幕向左),我创建了一个自定义视图控制器,其中包含两个容器视图表单 masterView 和 detailsView。事情按预期工作。
现在在某个地方,我使用了替换转场来替换详细信息视图。问题来了。如何创建一个自定义 segue,将 viewController 嵌入到容器视图中,就像替换 segue 一样?
到目前为止,我在我的应用程序中使用 UISplitViewController。要为 masterView 添加隐藏功能(移出屏幕向左),我创建了一个自定义视图控制器,其中包含两个容器视图表单 masterView 和 detailsView。事情按预期工作。
现在在某个地方,我使用了替换转场来替换详细信息视图。问题来了。如何创建一个自定义 segue,将 viewController 嵌入到容器视图中,就像替换 segue 一样?
我通常会像这样创建一个自定义 segue:
@interface MyCustomSegue:UIStoryboardSegue
@end
@implementation MyCustomSegue
- (void)perform {
UIViewController* src = (UIViewController*) self.sourceViewController;
MyViewControllerClass* dst = (MyViewControllerClass*) self.destinationViewController;
[src addChildViewController:dst];
[src.view addSubview:dst.view];
//This line uses FLKAutolayout library to setup constraints
[dst.view alignToView:src.view];
}
@end
然后您应该能够在情节提要中绘制您的自定义转场(当您在画线后松开鼠标按钮时,它应该出现在转场菜单中)。
这是我能想到的最简单的方法,您可以自定义源视图控制器以具有自定义容器视图(而不是 src.view)和对目标视图控制器的引用。您还可以编写自定义 AutoLayout 约束代码,而不是使用 FLKAutoLayout(顺便说一句,这真的很棒)。