• Swift之分割视图控制器-UISplitViewController


    Swift之分割视图控制器-UISplitViewController

    UISplitViewController这种控制器只能用于iPad,它可以在iPad屏幕中显示两个不同的场景:在横向模式下,左边显示一个表,供用户选择;用户选择表中的元素后,详细视图将显示该元素的详细信息。如果iPad被旋转到纵向模式,表将消失,而详细视图将填满整个屏幕;要进行导航,用户可触摸一个工具栏按钮,这将显示一个包含表的弹出框。

    默认情况下,UISplitViewController的一端连接到一个受导航控制器(UINavigationController)管理的表视图(UITableViewController),这代表主场景;另一端连接到一个普通视图控制器(UIViewController),这代表详细场景。

    AppDelegate中的代码如下:

    func application(

        application: UIApplication,

        didFinishLaunchingWithOptions launchOptions: [NSObject : AnyObject]?)

        -> Bool

    {

        let splitViewController = window!.rootViewController as! UISplitViewController

        let navigationController = splitViewController.viewControllers.last as! UINavigationController

        navigationController.topViewController!.navigationItem.leftBarButtonItem = splitViewController.displayModeButtonItem()

        splitViewController.delegate = self

        return true

    }

    // MARK: - UISplitViewControllerDelegate

    func splitViewController(

        splitViewController: UISplitViewController,

        collapseSecondaryViewController secondaryViewController: UIViewController,

        ontoPrimaryViewController primaryViewController: UIViewController)

        -> Bool

    {

        if let secondaryAsNavController = secondaryViewController as? UINavigationController {

            if let topAsDetailController = secondaryAsNavController.topViewController as? DetailViewController {

                return topAsDetailController.request == nil

            }

        }

        return false

    }


    可以将主场景和详细场景替换为新的控制器,只需要删除默认的控制器,然后按住Control键,并从分割视图控制器对象拖曳到新的主场景或详细场景,再在Xcode提示时选择Relationship - masterViewController或Relationship - detailViewController。




    主场景和详细场景可以通过分割视图控制器互相访问,属性splitViewController包含一个名为viewControllers的数组。通过使用NSArray的方法lastObject,可获取该数组的最后一个元素(详细信息视图)。通过调用方法objectAtIndex,并将索引0传递给它,可获取该数组的第一个元素(主视图)。这样,两个视图控制器就可交换信息了。
    给大家分享一下Alamofire的使用https://github.com/Alamofire/Alamofiredemo里面用的就是UISplitViewController哦,( _)/~~拜拜


    链接:https://www.jianshu.com/p/28be9031d03a

  • 相关阅读:
    java之类的封装
    java飞机大战之子弹的自动生成
    java之线程飞机大战制作
    java线程游戏之背景图片的移动
    mysql的安装以及简单的命令符
    java之控制多幅图片
    java之线程
    JAVA之数组队列
    java之链表
    python之数据库的操作(课前准备)
  • 原文地址:https://www.cnblogs.com/sundaysme/p/10341466.html
Copyright © 2020-2023  润新知