【问题标题】:Split view controller rotation on iPhone 6 PlusiPhone 6 Plus 上的拆分视图控制器旋转
【发布时间】:2015-02-06 07:21:52
【问题描述】:

我有一个横向模式的拆分视图控制器,带有两个导航控制器。

这会折叠成一个纵向的导航控制器,并且从主控制器推送详细视图控制器。

如果我在将详细视图控制器以纵向推入时旋转回横向,我不明白如何将详细视图控制器放回它自己的导航控制器中。

【问题讨论】:

    标签: ios8 uisplitviewcontroller iphone-6-plus


    【解决方案1】:

    你应该实现 UISplitViewControllerDelegate。最简单的方法可能是拥有自己的 MySplitViewController 类并将自己设置为 viewDidLoad 中的委托:

    self.delegate = self;
    

    首先,您可能希望 showDetailViewController 看起来像:

    - (BOOL) splitViewController:(UISplitViewController*)splitViewController showDetailViewController:(UIViewController*)vc sender:(id)sender
    {
        if (splitViewController.collapsed)
        {
            [(UINavigationController*)splitViewController.viewControllers[0]) pushViewController:vc animated:YES];
        }
        else
        {
            self.viewControllers = @[ self.viewControllers.firstObject, vc ];
        }
        return YES;
    }
    

    这应该注意在两个方向上正确显示详细信息视图。

    接下来,您应该实现以下类似的委托方法:

        - (UIViewController*)                splitViewController:(UISplitViewController*)splitViewController
    separateSecondaryViewControllerFromPrimaryViewController:(UIViewController*)primaryViewController
    {
        UINavigationController* nc = primaryViewController;
        UIViewController* detailVC = nc.viewControllers.lastObject;
        return detailVC;
    }
    

    这个方法是你从主控制器获取你想要的任何东西并将其作为细节视图控制器返回的机会。上面的示例代码相当简单,您可能需要遍历导航视图控制器并从特定视图控制器开始选择所有内容(假设您从详细视图中推送)。

    无论如何,花点时间阅读一下真的会有所收获:UISplitViewController class reference,尤其是UISplitViewControllerDelegate Protocol Reference 这会清楚得多。 如果您想要快捷方式,请查看 Xcode 拆分视图控制器模板项目。该文件还应包含针对您的问题的提示或确切解决方案。

    【讨论】:

      【解决方案2】:

      让细节有自己的导航控制器,就像在主细节模板中一样。当拆分视图折叠时,它在主导航控制器上调用showViewController,当它检测到类UINavigationController 的控制器时,它设置允许嵌套导航控制器为真并隐藏导航栏。这样您就可以保留详细导航,因此当您旋转到横向并分开时,它可以再次使用现有导航。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-11-29
        • 1970-01-01
        • 2015-10-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多