首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

iOS:分割控制器UISplitViewcontroller

分割控制器UISplitViewController 功能:它也是ipad的一个新特性,在屏幕上可以同时显示两个控制器,左边一个,右边一个;左边的为主控制器,右边的为详细控制器,主控制器可以根据需要显示或隐藏...它对于iPhone虽然可以使用,但是不具备同时显示的特点,在iPhone的样式,就是导航控制器切换的模式。...2、导入几张素材图片,用来在详细控制器中显示。...所有的文件截图为: 3、下面就是具体的代码创建了: //在AppDelegate.m文件中: 导入头文件并声明必要的属性,同时实现分割控制器的协议 #import "AppDelegate.h" #import...*)indexPath { //1.根据reuseIdentifier,先到对象池中去找重用的单元格对象 static NSString *reuseIdentifier = @"Cell

2K30

跟着官方文档学习3D Touch

我们在Info.plist文件中定义的静态快捷操作项的顺序(数组中字典的先后顺序)也就是静态快捷操作项在屏幕上显示的顺序(默认第一个显示在最下面,也就是这些快捷操作项在屏幕上自下向上排列)。...当用户触发相应的快捷操作项时,这个参数会被传递给应用程序,应用程序可以根据这个字符串(type)来对快捷操作项进行分类,然后在接收的类型中进行区分确定被处触发的快捷操作项的类型。...== 上面代理方法中的previewingContext,内存中是同一个对象 *viewControllerToCommit:被present(pop)的视图控制器 == 上面代理方法中返回的控制器...,内存中是同一个对象 *调用时间:pop阶段调用这个方法 *作用:配置并且present一个commit(pop)视图控制器。...根据app实际需要,可以在视图控制器或者视图中实现这个代理方法,以响应一些改变。比如:当iPhone从竖屏旋转到横屏时,你也许需要调整控制器的子视图的布局,我们可以在这个方法中进行操作。

6.4K50
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    iOS的MVC框架之控制层的构建(下)

    控制器初始化(init) 如果你的业务模型对象的生命周期和控制器的生命周期一样,那么建议将业务模型对象的构建放在控制器的初始化代码中,当然前提是你的业务模型对象是一个轻量级的对象,如果你的业务模型对象的构建特别消耗时间那么不建议放在控制器的初始化中构建而是通过懒加载或者在某个触摸事件发生时再构建...我们知道在iOS的loadView的默认实现逻辑是首先会到SB或者XIB中去根据视图控制器的类型去搜索是否有匹配的视图布局文件,如果有则将这个视图布局文件进行解析并构建对应的视图层次树并设置视图控制器中的那些插座变量...控制器不再根据状态去发起不同的请求,不再处理任务业务实现相关的东西,而且业务模型也不再是向以前那样干巴巴的使用单例或者使用类方法的形式提供给控制器调用,而是一个对象!一个真实的对象!...一个面向对象中定义的对象来给控制器调用。通过对业务模型层的封装使得我们可以在其他的视图控制器中也非常简单的使用业务模型提供的服务来完成服务。从而精简了控制器中的代码和逻辑。...,那我们又会面临同样的问题,就是商品列表其实和用户也是无关的,但是代码里面确出现了用户对象,这样就出现了商品模块和用户模块之间的耦合问题。

    4.4K30

    窥探Swift之协议(Protocol)和委托代理(Delegate)回调的使用

    说到协议,在Objective-C中也是有协议的,并且Swift中的协议和Objc中的协议使用起来也是大同小异的,在Java等现代面向对象编程语言中有接口(Interface)的概念,其实和Swift中或者...上显示的数据了,在正常开放中这些数据往往来源于网络请求,而在本篇博客中就模拟数据源,来为我们的TableView提供显示的数据。...(1) 首先我们要在视图控制器相应的类中添加一个可变数组,用来存放数据,如下所示: 1 private var dataSource:Array在viewWillDisappear方法中,会将用户输入的值交付给委托代理者的fetchGirlName方法。...在该方法中,首先我们要暂存一下点击的是哪个Cell, 也就是记录一下点击Cell的IndexPath, 然后就是获取点击的Cell对象,因为通过该Cell对象,可以获取相应Cell上的数据。

    3.6K80

    iOS 9 Storyboard 教程(二下)

    接上链接 Add Player控制器在工作 现在你会忽视Game行,仅仅让用户输入玩家的名字....但是当用户点击Done按钮的时候,你应该创建创建一个新的Player 对象并且填写它的属性和更新�玩家的清单....Player对象来作为数据源.然后它会告诉tableView添加了新的一行(在底部),因为tableView和它的数据源始终是同步的....Game Picker控制器 在Add Player控制器里点一下Game那一行应该会打开一个新的控制器,可以让用户从一个列表里选择游戏.也就意味着你将会添加另一个tableViewController...现在让我们给这个新的控制器一些数据来显示吧.在GamePickerViewController.swift中,把一个具有硬编码值的games字符串数组添加到顶部: var games:[String]

    2.2K10

    iOS开发之UITableView联动实现城市选择器

    这种方式总体思路如下: 1、添加两个UITableView到当前控制器中,分别设置它们的的尺寸,然后拖线到控制器中 2、左边的表格设置数据源和代理为当前控制器,然后显示数据,右边的表格也设置数据源为当前控制器...3、监听左边表格控制器的点击事件,在它的点击事件中刷新右边的表格 这时候就有问题了,一个控制器要成为2个UITableView的数据源和代理,怎么办?...—— 在数据源和代理方法中,进行判断 if (self.leftTableView== tableView) {} else{} 具体步骤: 1、添加2个UITableView,设置约束...添加和准备工作.png 2、在控制器中实现功能,具体代码如下,注释非常详细: #import "ViewController.h" @interface ViewController () <UITableViewDataSource...*/ - (NSArray*)provinces { if (_provinces == nil) { //将省份保存到数组中 但是字典保存的是无序的 所以读出来的省份也是无序的

    2.2K60

    iOS开发之表视图爱上CoreData

    section中的用户信息       4.items中又是一个数组rowsArray, rowsArray中存放的又是一个字典userInfoDictionary, 在userInfoDictionary... *整个数据存储在一个数组中  *数组中每一个元素是一个自动,字典的key是sectionHeader的值,value是该section中以数组形式存的数据  *section中的每一行对应着一个数组元素...,数组元素中又存储着一个字典,字典中存储着用户的具体数据。  ...    [self.telBook addObject:sectionDic]; } 3.把我们用代码创建的模拟数据在我们的TableView中进行显示,在相应的函数中根据我们生成的数据返回相应的值显示在...中进行显示即可,在tableView中从person对象中获取相应的头像,然后显示即可,下面我们要加上索引。

    2.2K80

    六天完成一个简单iOS App - 第四天

    titleView也是添加在主控制器上,显示在scrollView上面,保证titleView永远显示在主控制器的View上,不会随着scrollView的滚动而滚动。...也就是当点击了button或者滑动界面之后,在根据scrollView的偏移量判断需要加载哪个控制器的View,然后将View添加到scrollView中。...endRefreshing]; MJRefresh内部实现思路,在tableView中titleView上方添加下拉刷新的View,使用scrollView代理方法监听tableView的contentOffset...使用[manager.task makeobjectsPerformSelect:@selsct(canle)];数组方法,让数组里面所有对象都执行这个方法 [manager invalidateSessionCanceingTask...,可以使用懒加载,也可以再initialize方法中创建,initialize方法只在类加载时调用一次。

    1.4K70

    史上最全的iOS之访问自定义cell的textField.text的N种方法

    所以需要一中通用的动态的方法。那么我们怎么在tableView中准确的拿到每一行cell中textField的text呢?...以下我将要分四个方法分别介绍并逐一介绍他们的优缺点,大家可以在开发中根据实际情况有选择的采用不同的方法。...如下图,就是我之前开发的一个app中用xib描述的一个cell,当用户点击“注册”或者“提交”button时候,我需要在控制器中拿到诸如“法人姓名”这一类的信息: ?...3.然后在监听到通知后调用的方法中,根据textField.tag拿到textField的内容。 但是,问题来了,如果tableView是grouped样式的呢?...这样就可以在监听到通知后调用的方法中,根据indexPath来区分不同的section和row。

    6.8K40

    在iOS中怎样创建可展开的Table View?(上)

    .这些视图控制器可以用在很多方面,例如,简单地显示某种信息在屏幕上,或者从用户的输入收集复杂的数据.为不同功能的app创建新的视图控制器经常是强制性的,并且好几次都是有点让人退缩的任务.然而,如果你只是使用可展开的...tableview,有时也可能避免创建视图控制器(以及在storyboard中它们各自的场景)....,创建可展开的tableView是一个不错的选择.使用可展开的tableView,在任何情况下,只是向用户请求已经存在的数据或是默认的视图控制器,而没必要创建新的视图控制器.例如,有了可展开的cell,...关于演示的app 通过实现一个包含tableView的视图控制器的app,我们将会看到可展开的tableView是如何创建和工作的.我们将会做一个假的表格让用户输入数据,为此,tableView将要包含下面三个组...visibleRowsPerSection数组中先前所有的内容,否则随后我们在调用这个函数的时候会得到错误的数据.

    1.8K50

    iOS 9 Storyboard 教程(一下)

    这个table view应该会显示一列玩家名单,所以现在你需要为这个app创建一个数据模型—一个包含Player对象的数组.使用Swift File模板在iOS/Source里为这个工程添加一个新文件....接下来,你需要把一个Player对象数组赋值给PlayersViewController.使用Swift File模板为开始,创建一个新文件,命名为SampleData.把它添加到SampleData.swift...Dave Brubeck", game: "Texas Hold 'em Poker", rating: 2) ] 现在你已经定义了一个叫做playersData的常量,并且分配了一个硬编码的Player对象数组给它...plist文件或者SQL文件中取,所以在视图控制器外部加载数据是很明智的....现在你有一个包含很多Player对象的数组.你可以继续在PlayersViewController里链接数据源.用下面的方法替换table view的数据源: override func numberOfSectionsInTableView

    3.1K20

    UITableViewCell系列之(一)让你的cell支持二次编辑

    每个开发者采用的方式不同,有的开发者直接以modal/push的方式present出一个控制器,把tableViewCell上的内容传递到被modal/push的控制器的UITextView上,在UITextView...另外一种方法是直接在当前控制器(的界面)上以动画(甚至是没有动画)的形式弹出一个UITextView,在UITextView上修改文本内容,修改完成后再隐藏/移除UITextView,把内容重新显示到tableView...做的好的同学,可能还不忘弹出UITextView的时给tableView添加一个蒙版或者模糊效果以突出重点,提高用户的体验度。以上的两种方式算是中规中矩。...此处称为frame1 根据frame1获取点击的那一行cell 在cell上添加一个和label同样尺寸、同样坐标的UITextView,以让UITextView正好遮盖住label 把cell上的内容显示到...2.获取显示的所有cell,遍历数组中每个cell的frame,找到点击的那个cell - (WSEnableEditCell *)getCellInTableView:(UITableView *)

    7.8K40

    Swift| 基础语法(五)

    前言 总结下 swift下的基础语法,里面涉及到:常量&变量、Swift中的数据类型、逻辑分支、循环、字符串相关、数组和字典、方法的书写调用等内容,考虑到阅读体验分多篇来展示,希望对大家学习swift...对象、并使用ViewController界面布局文件来 // 初始化该视图控制器关联的用户界面 let vc = ViewController() //通过控件加载视图...} 在Swift中,创建tableViewCell的方法可以分为两种创建tableView时候注册和需要使用时手动创建。先聊聊创建tableView的时候直接注册cell: myTb?....可以在自定义cell中处理点击状态下的显示 var label1 :UILabel? var label2 :UILabel?...因为在Swift中,所有对象的构造器默认都是public,所以需要重写你的init让其成为私有的。 这样就保证像如下的代码编译报错,不能通过。 六、从相册选择照片或者拍照 ?

    2K30

    Swift-MVVM 简单演练(一)

    ) 设置子控制器 在HQMainViewController中设置四个子控制器 用extension将代码拆分 通过反射机制,获取子控制器类名,创建子控制器 设置每个子控制的tabBar图片及标题 HQMainViewController...isPullup { isPullup = true loadData() } } 在首页控制器里面模拟加载数据的时候,根据属性isPullup...在基类控制器的setupUI(设置界面)的方法里面,我们直接创建了tableView,那么我们如果有一个标记,能根据这个标记来选择是创建普通视图,还是创建访客视图。就可以很好的解决此类问题了。...增加一个用户登录标记 /// 用户登录标记 var userLogon = false 根据标记判断视图显示 userLogon ?...总结 使用代理传递消息是为了在控制器和视图之间解耦,让视图能够被多个控制器复用,如TableView 但是,如果视图仅仅是为了封装代码,而从控制器中剥离出来的,并且能够确认该视图不会被其它控制器引用,

    10.3K51

    【IOS开发基础系列】UISearch专题

    mySearchBar.keyboardType = UIKeyboardTypeNamePhonePad; [self.view addSubview: mySearchBar]; [mySearchBar release]; 1.2.3.2 在tableview...,视图控制器,继承UITableViewController self.tableView.tableHeaderView = _searchBar;     //将UIsearchBar添加到UIdSearchDispalyController...,继承与UITableViewController,在extension中定义属性 //存储原来的数据 @property (nonatomic, retain) NSArray*dataArr; //...使用时注意:在searchBarTextDidBeginEditing事件中必须将当前子视图上移44px(即移到导航条中),以便达到让用户觉得UISearchController界面中的Search bar...而用户退出UISearchController界面时,同样要记得重新设置此界面的布局,以便让用户觉得此Search bar是UISearchController界面中下移下来的。

    59120

    简易理解设计模式之:代理模式——iOS列表视图控件设计方式

    使用场合如下: • 远程代理:为一个对象在不同的地址空间提供局部代表。这样可以隐藏了一个对象存在于不同地址空间的事实。...• 虚拟代理:根据需要创建开销很大的对象,通过它来存放实例化需要很长时间的真实对象。 • 安全代理:用来控制真实对象访问时的权限。 • 智能指引:指当调用真实的对象时,代理处理另外一些事情。...而在用户真正做具体事情时再由代理类单独去加载真实类,完成用户的请求。这个过程就是使用代理模式实现了延迟加载。...2.2、安全代理和智能指引 在系统开发中,我们有时需要保护某些对象的访问权限,实现端只需要知道自己需要用的方法即可,其它额外的事情均有代理端控制。 举一个移动端开发的例子。...iOS开发中存在大量的原生自带的视图控件,在视图控制器中使用控件并不需要复杂的生成一堆对象和设置各种属性,只需要简简单单调用几个实现方法即可。苹果iOS视图控件的设计中可以说将这个模式提现得淋漓尽致。

    79020

    用这些 iOS 技巧让你的 APP 性能更佳

    译者注:文段中没有 Xcode,下文中提及为 Xcode 新建项目 为了让你的应用感觉更快,你可以将启动页设计为与将向用户显示的第一个页面(视图控制器)类似。...推荐阅读: 具有面部识别功能的移动应用程序:如何实现 01 视图控制器的状态恢复 视图控制器的状态保存和恢复,允许用户在离开应用程序后可以返回到之前完全相同的用户界面状态。...假设 MyViewController 嵌入在 navigation 控制器中,navigation 控制器嵌入在另一个 tabbar 控制器中。...一旦指定保存的对象解码完成,applicationFinishedRestoringState() 将被调用以告诉视图控制器状态已被恢复。我们可以在此方法中更新视图控制器的 UI。...这很可能是因为应用程序在主线程上运行繁重的计算任务。 主线程中通常在 UIKit 任务(如处理用户输入)和一些间隔很小的轻量级任务之间交替。

    3.2K30

    模拟京东商城实现导航条隐藏功能

    显示 && 位置变化 Demo展示: singleVC.gif 进阶篇:跨控制器改变View的显示 demo中的View都在同一个界面,可以直接在observeValueForKeyPath方法中...滚动方向,判断View的显示隐藏 && 位置,所以判断在tableView对应的控制器上; 外部控制器根据tableView控制器的滚动方向而做出相应的变化,所以外部控制器要成为代理对象,协议声明写在tableView...,然后在observeValueForKeyPath 方法中,由于无法直接控制外部VC的界面属性,所以通过代理传值,告诉外部控制器,界面要发生的变化 //tableView控制器的.m文件 -(void...就不要再一直往上跑了,最多就上移一个View的位置就够了,所以要添加判断; 如果是在同一个控制器中,可以添加 - _navigationView.hidden 属性判断 if(deltaY >...,_navigationView属性是在外部控制器上,而不是在tableView的控制器上,所以拿不到!

    1.8K120
    领券