ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Swift - UISplitViewController

2019-01-31 12:41:52  阅读:281  来源: 互联网

标签:indexPath tableView UISplitViewController self let func Swift view


https://blog.csdn.net/weixin_43704791/article/details/86424080

2019年01月13日 

 

AppDelegate中:

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {

        // Override point for customization after application launch.

 

        

        let master = MasterViewController()

        let detail = DetailViewController()

        master.detailViewController = detail

        let navigationController = UINavigationController(rootViewController: master)

        //判断设备

        if UIDevice.current.userInterfaceIdiom == .phone{

            self.window?.rootViewController = navigationController

        }else{

            //创建分割视图控制器(iPad特有)

            let split = UISplitViewController()

            //横屏下显示

            split.viewControllers = [navigationController,detail]

            self.window?.rootViewController = split

        }

        return true

    }

 

创建MAsterViewController:

import UIKit

class MasterViewController: UIViewController,UITableViewDelegate,UITableViewDataSource {

 

    var tableView:UITableView!

    var ctrls = ["A","B","C"]

    var detailViewController:DetailViewController!

    override func viewDidLoad() {

        super.viewDidLoad()

        self.title = "列表"

        self.tableView = UITableView(frame: self.view.frame,style:.plain)

        self.tableView.delegate = self

        self.tableView.dataSource = self

        self.tableView.register(UITableViewCell.self, forCellReuseIdentifier: "ReusedCell")

        self.view.addSubview(tableView)

    }

    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {

        return ctrls.count

    }

    

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

        let identifier = "ReusedCell"

        let cell = tableView.dequeueReusableCell(withIdentifier: identifier, for: indexPath)

        cell.accessoryType = .disclosureIndicator

        cell.textLabel?.text = self.ctrls[indexPath.row]

        return cell

    }

    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {

        detailViewController!.loadControl(ctrl: self.ctrls[indexPath.row])

//        detailViewController.title = ctrls[indexPath.row]

        if (UIDevice.current.userInterfaceIdiom == .phone){

         tableView.deselectRow(at: indexPath, animated: true)

            self.navigationController?.pushViewController(detailViewController, animated: true)

        }

    }

    

}

 

DetailViewController:

import UIKit

class DetailViewController: UIViewController {

    override func viewDidLoad() {

        super.viewDidLoad()

        self.view.backgroundColor = UIColor.white

        let ctrl = self.title != nil ? self.title! : ""

        loadControl(ctrl: ctrl)

    }

    func loadControl(ctrl:String){

        clearViews()

        switch ctrl {

        case "A":

            let label = UILabel(frame: self.view.bounds)

            label.backgroundColor = UIColor.black

            label.textColor = UIColor.orange

            label.text = "hellow"

            self.view.addSubview(label)

        case "B":

            let button = UIButton(frame: CGRect(x: 150, y: 250, width: 100, height: 100))

            button.setTitle("按钮", for: .normal)

            button.backgroundColor = UIColor.red

            self.view.addSubview(button)

        case "C":

            let uiSwitch = UISwitch(frame: CGRect(x: 150, y: 250, width: 0, height: 0))

            uiSwitch.setOn(false, animated: true)

            self.view.addSubview(uiSwitch)

        default:

            print("error")

        }

    }

    func clearViews(){

        for v in self.view.subviews{

            v.removeFromSuperview()

        }

    }

}

 

标签:indexPath,tableView,UISplitViewController,self,let,func,Swift,view
来源: https://www.cnblogs.com/sundaysme/p/10341456.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有