zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    nginx设置账号密码--htpasswd的使用
    Sublime Text 3安装Json格式化插件
    Visual Studio code 代码格式化整理
    安装uwsgi 报错“fatal error: Python.h: No such file or directory”
    Nginx 访问优先级配置
    Git 代码回退回退一个版本或多个版本
    SQL 常用方法例子
    SQL 常用方法函数
    FlipViewDemo
    data1是字符串?需要加上引号
  • 原文地址:https://www.cnblogs.com/sundaysme/p/10341466.html
Copyright © 2011-2022 走看看