ios - 通过自定义 Segue 将 ViewController 嵌入容器 View (有点像替换 segues)

标签 ios uiviewcontroller uisplitviewcontroller uistoryboardsegue uicontainerview

到目前为止,我在我的应用程序中使用 UISplitViewController。要为 masterView 添加隐藏(移出屏幕到左侧)的功能,我创建了一个自定义 View Controller ,其中包含两个容器 View 形式 masterView 和 detailsView。事情按预期进行。

现在在某个地方,我使用了 replace segue 来替换详细信息 View 。问题来了。我如何创建自定义转场,将 viewController 嵌入到容器 View 中,就像替换转场一样?

最佳答案

我通常会像这样创建自定义转场:

@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

然后您应该能够在 Storyboard中绘制您的自定义转场(当您在画线后释放鼠标按钮时,它应该出现在转场菜单中)。

这是我能想到的最简单的方法,您可以自定义源 View Controller 以具有自定义容器 View (而不是 src.view)和对目标 View Controller 的引用。 您还可以编写自定义 AutoLayout 约束代码,而不是使用 FLKAutoLayout(顺便说一句,这真的很棒)。

关于ios - 通过自定义 Segue 将 ViewController 嵌入容器 View (有点像替换 segues),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23408322/

相关文章:

ios - Xcode 更新后 Cordova 构建失败

ios - 是否可以使用 Storyboard使用 UIViewController 而不是 UITableViewController 创建静态表?

ios - 将 IBDesignable 和 IBInspectable 与 UIViewController 一起使用

ios - 在 Split View Controller 的详细 View 中制作导航 Controller

ios - UISplitViewController iPad 行为

ios - 在每个 View Controller 中显示用户名 jsondata

ios - UIStackView 内的 UITextField 宽度约束问题

ios - 详细说明 UISplitViewController 中的 UINavigationController 问题

iOS 8,自定义字体问题

ios - 无法圆化 UIViewController 的所有角