UISplitViewController的简单应用

作者: Magenta_she | 来源:发表于2016-07-28 17:38 被阅读1680次

    UISplitViewController可以用来干嘛?简言之,能让屏幕呈现master-detail风格。

    详细说来,它将屏幕分成两个section,在左边这个section显示master view controller,右边这个section显示detail view controller。但在iPhone上有所不同:首先显示的是detail view controller,选择navigation bar 上的back button,可以返回到master view controller。

    项目示意图:

    Simulator

    01

    --新建两个文件,命名为MasterViewController和DetailViewController。

    --在storyboard里,拖一个SplitViewController出来,将Root View Controller的class设置为MasterViewController,将下面那个ViewController的class设置为DetailViewController。

    storyboard

    02

    Data Model的搭建。新建文件,命名为Hearts。

    Hearts.swift

    03

    MasterViewController的搭建。

    --创建一个数组,并对它初始化。

    MasterViewController.swift

    --添加三个数据源方法。

    MasterVIewController.swift

    04

    DetailViewController的搭建。

    DetailViewController.swift

    05

    建立MasterViewController和DetailViewController之间的联系。

    --在MasterViewController.swift里添加代理和协议和相应的方法。

    这里的delegate是啥?遵守协议的变量。我的理解是,delegate像传接球的人一样,把从MasterViewController获得的变量接住,再传给DetailViewController。

    MasterViewController.swift

    在Master-Detail风格的Template中,MasterViewController有一个对DetailViewController的引用,这意味着选中当row被选中时,MasterViewController能将属性set在DetailViewController上。接下来,添加能实现这个的方法。这里实现了两步,第一步是delegate接到从MasterViewController传过来的变量,第二步是View Controller的转换。

    MasterViewController.swift

    接下来要delegate要做的就是,把接到的变量传给DetailViewController。

    --在DetailViewController.swift里添加代码。当row被选中时,DetailViewController的property能随之更新。

    DetailViewController.swift

    --最后在AppDelegate.swift里的application(_:UIApplication,didFinishLaunchingOptions launchOptions:[NSObject:AnyObject]?)方法里添加以下代码。

    AppDelegate.swift

    项目完成。

    Github项目地址:

    GitHub - Paganarchitect/iOS_tutorial_exercises_RayWenderlich: iOS exercises based on Ray Wenderlich tutorial

    相关文章

      网友评论

        本文标题:UISplitViewController的简单应用

        本文链接:https://www.haomeiwen.com/subject/mmjijttx.html