UISplitViewController 分屏控制器
2016-05-22 00:00
537 查看
UIStoryboard(name: "Main", bundle: nil) 得到故事版文件对象 其中参数name是故事版的名字,可以中info.plist中查找或者就是Main.storyboard文件
1、建一个工程(single view applicatio )
2、删除系统自动生成的viewcontroller场景,拖拽一个 Split View Controller 控件到interface builder上
3、给viewController添加导航栏,(split view controller 控件分栏到两视图可以带导航控制器)
1⃣️一般左边的是(TableViewController的子类)表格视图控制器右边的是普通视图控制器
4、把系统自动生成的类ViewContrlloer.swfit改成DetailViewContrlloer.swfit,
然后将视图控制器与视图类关联起来
5、将左边(TableViewController)的视图控制器中的Cell(得命名标识符)
与右边的视图控制器关联起来,segue,命名segue
6、新建一个视图控制器类(SplitViewController,应该是系统自动识别的),在这个类中的viewdidload方法中 添加一行代码
splitViewController?.preferredDisplayMode = .PrimaryOverlay
这行代码使左边的视图控制器(TableViewController)在右边控制器(ViewController)上面
7、新建一个视图控制器类,让视图控制类与Interface Builder 中的左边视图控制器关联
8、在DetailViewController类中的viewdidload方法中添加如下代码
if splitViewController?.respondsToSelector(#selector(UISplitViewController.displayModeButtonItem)) == true {
navigationItem.leftBarButtonItem = splitViewController?.displayModeButtonItem()
navigationItem.leftItemsSupplementBackButton = true
}
这行代码用来显示这个视图控制器类中左边的按钮的
9、在tableviewcontroller视图控制器类的 prepareForSegue(选中行时触发)方法中写如下代码
if segue.identifier == "ShowDetailIdentifier" {
var detail: DetailViewController
//判断是否时导航控制器
if let navigationController = (segue.destinationViewController as? UINavigationController) {
detail = navigationController.topViewController as! DetailViewController
} else {
detail = segue.destinationViewController as! DetailViewController
}
if let path = tableView.indexPathForSelectedRow {
detail.selectedIndex = path.row + 1
}
}
1、建一个工程(single view applicatio )
2、删除系统自动生成的viewcontroller场景,拖拽一个 Split View Controller 控件到interface builder上
3、给viewController添加导航栏,(split view controller 控件分栏到两视图可以带导航控制器)
1⃣️一般左边的是(TableViewController的子类)表格视图控制器右边的是普通视图控制器
4、把系统自动生成的类ViewContrlloer.swfit改成DetailViewContrlloer.swfit,
然后将视图控制器与视图类关联起来
5、将左边(TableViewController)的视图控制器中的Cell(得命名标识符)
与右边的视图控制器关联起来,segue,命名segue
6、新建一个视图控制器类(SplitViewController,应该是系统自动识别的),在这个类中的viewdidload方法中 添加一行代码
splitViewController?.preferredDisplayMode = .PrimaryOverlay
这行代码使左边的视图控制器(TableViewController)在右边控制器(ViewController)上面
7、新建一个视图控制器类,让视图控制类与Interface Builder 中的左边视图控制器关联
8、在DetailViewController类中的viewdidload方法中添加如下代码
if splitViewController?.respondsToSelector(#selector(UISplitViewController.displayModeButtonItem)) == true {
navigationItem.leftBarButtonItem = splitViewController?.displayModeButtonItem()
navigationItem.leftItemsSupplementBackButton = true
}
这行代码用来显示这个视图控制器类中左边的按钮的
9、在tableviewcontroller视图控制器类的 prepareForSegue(选中行时触发)方法中写如下代码
if segue.identifier == "ShowDetailIdentifier" {
var detail: DetailViewController
//判断是否时导航控制器
if let navigationController = (segue.destinationViewController as? UINavigationController) {
detail = navigationController.topViewController as! DetailViewController
} else {
detail = segue.destinationViewController as! DetailViewController
}
if let path = tableView.indexPathForSelectedRow {
detail.selectedIndex = path.row + 1
}
}
相关文章推荐
- UITableView初识(1)
- UITableView--多组数据显示
- 从技术实现角度看Android UI设计
- Arduino 和 MQ-135 空气污染气体传感器 实验
- iOS学习之UIView
- 29.UITabBarController
- Hive ORC和Parquet
- 【Leetcode】Longest Increasing Subsequence
- iOS中常用UI层方法总结
- iOS开发 ☞ UITextField 详解
- HDOJ/HDU 1297 Children’s Queue(推导~大数)
- HDOJ/HDU 1297 Children’s Queue(推导~大数)
- iOS开发中 UITableViewCell的几种样式
- Java中String、StringBuffer和StringBuilder的区别
- STL 简单 queue 的实现
- String , StringBuffer, StringBuilder的区别
- mysql 中插入中文出现的 Incorrect string value: '\xE5\xA5\xBD\xE5\xAE\xB6...' from column错误
- XMG 核心动画与UIView动画的区别
- 如何将dataframe转换为rdd类型
- ios开发学习笔记--调用相册或相机(UIImagePickerController)