在前两篇博客中,讨论了关于watch开发中框架与界面布局相关,然而主要的逻辑,终究还是要通过代码来实现的,在我们创建了项目之后,就会生成InterfaceController这个文件,它就是我们storyBoard中的入口视图控制器。
UIViewController 可以理解为 App 的界面,负责管理 UIView 中显示的内容和用户的交互,主要有以下作用:
作为MVC设计模式中的C,Controller一直扮演着项目开发中最重要的角色,它是视图和数据的桥梁,通过它的管理,将数据有条有理的展示在我们的View层上。iOS中的UIViewController是UIKit框架中最基本的一个类。从第一个UI视图到复杂完整项目,都离不开UIViewController作为基础。基于UIViewController的封装和扩展,也能够出色的完成各种复杂界面逻辑。这篇博客,旨在讨论UIViewController的生命周期和属性方法,在最基础的东西上,往往会得到意想不到的惊喜。
在iOS的开发过程中,不可避免的要设计界面,在android中有xml设置界面和直接使用java代码设置界面控件两种方式,在之前的ios开发中也是类似的有xib文件设置界面及用代码直接设置控件两种方法,但后来又出了一种方式,就是storyboard故事板子,其实storyboard和xib文件很像,最大的不同之处在于一个xib文件对应一个ViewController视图控制器,而storyboard对应多个,基本一个应用只需要一个storyboard就可以了,不再需要为每个控制器创建一个xib文件,从这点上来说,还是很方便的,在storyboard中查看各个界面的跳转也很方便,但之前一直使用xib进行开发,对storyboard的使用不太熟悉,今天好好学习了一下其中的界面跳转和传值,用到了Segue这个东西,这里借着例子说明一下。
页面跳转啊页面间传值啊,这是每个项目几乎都要用到的东西。近年来苹果一直都在推Storyboard,页面跳转可以直接在Storyboard上拉线,然后用segue或者unwind来做一些传值的操作,非常方便,这里就不细说了。
一:代理 两个类之间的传值,类A调用类B的方法,类B在执行过程中遇到问题通知类A,这时候我们需要用到代理(Delegate)。 比如:控制器(Controller)与控制器(Controller)之间的传值,从C1跳转到C2,再从C2返回到C1时需要通知C1更新UI或者是做其它的事情,这时候我们就用 到了代理(Delegate)传值。 二:协议 上面说的两个界面,或者类之间的值传递,你就把协议当成他们之间的合同,就理解了。 下面看看Swift代码怎么写协议,为了方便阅读,我
## 1. UIStackView StackView 是iOS9以后才有的,主要解决了组件排列布局复杂的问题,高效快速。
WatchOS中的TableView和iOS中的TableView还是有很大的区别,在开发之前,首先我们应该明白WatchOS中的Table有哪些局限性和特点。下面几点是我总结WatchOS中Table的特殊之处:
想必大家都用过微信,微信间的页面切换是如何做成的呢?接下来我们用storyboard结合着代码来模拟一下微信的视图控制模式。 "工欲善其事,必先利其器",下面主要是对storyboard来进行我们项目框架的搭建的,必要时,用代码实现我们的页面效果。在IOS开发中常用的多视图间的切换大致有TabBarController, NavigationBarController, 和模态窗口。第一次接触模态的概念是在Web前端的内容中接触的。下面将会结合一个实际的效果来简单的介绍一下TabBar和Naviga
前面的两篇博客都是学习有关屏幕适配也就是相对布局的东西,这篇博客中将会学习视图间的切换。视图间的切换我们可以用代码完成或者用storyboard来建立各个视图控制器间的关系。在需要用到代码进行切换时会用代码进行视图间的跳转。下面的东西我们会主要介绍到NavigationController来进行视图间的切换。下面也是和之前一样把代码和storyboard结合起来学习。 下面介绍一下我们要实现的功能和效果: App打开的第一个界面是登陆页面,登陆页面由用户名和密码以及一个登陆按钮构成。当登陆成功时会p
上一篇博客中提到了用CoreData来进行数据的持久化,CoreData的配置和使用步骤还是挺复杂的。但熟悉CoreData的使用流程后,CoreData还是蛮好用的。今天要说的是如何记录我们用户的登陆状态。例如微信,QQ等,在用户登陆后,关闭应用在打开就直接登陆了。那么我们在App开发中如何记录用户的登陆状态呢?之前在用PHP或者Java写B/S结构的东西的时候,我们用Session来存储用户的登陆信息,Session是存在服务器上仅在一次回话中有效,如果要记录用户的登陆状态,那么会用到一个叫Cook
UINavigationController 利用UINavigationController,可以轻松地管理多个控制器,轻松完成控制器之间的切换,典型例子就是系统自带的“设置”应用 UINavigationController的使用步骤 初始化UINavigationController 设置UIWindow的rootViewController为UINavigationController 根据具体情况,通过push方法添加对应个数的子控制器 UINavigationController以栈的形
使用 storyboard 的时候,我们经常会写出下面这样的代码,用来跳转到其他页面
路由是指根据url分配到对应的处理程序,在移动端就可以理解为,根据给定的url跳转到指定页面的功能模块。
2016-11-2120:41:52 发表评论 7℃热度 1.xcode5和xcode7区别? 2.pch文件原理? 3.UIApplication常见功能? 4.程序完整启动流程? 5.U
不同于国外,StoryBoard从面世到如今饱受国内开发者的质疑,质疑的理由很多,什么不利于多人协作啊,隐藏了UI细节啊,出问题不容易测试,降低执行效率啊等等。此文就是针对这些问题的举例和剖析。
概述 在iOS的发展历程中,IOS开发经历了三种主要流派:使用代码手写UI及布局;使用单个xib文件组织viewController或者view;使用StoryBoard来通过单个或很少的几个文件构建全部UI。而在最近几年的开发中,苹果对 Storyboard 的开发力度也不断增强,添加了更多功能和特性,大大方便了界面的开发、适配以及提升代码性能。 我们来看看三种方式的主要区别: 手写页面和逻辑代码 如果你的目的是写一些可以高度重用的控件提供给其他开发者使用,那毫无疑问最好的选择应该是使用代码来完成UIVi
最近项目中需要实现视频监控功能,于是就用了某企业旗下的一款视频监控产品,在集成官方Dome中的监控画面播放的功能时,发现整个项目都是通过StoryBoard搭建的,然而我的项目是没有使用StoryBoard,纯代码开发,如果我用纯代码重写里面的功能逻辑当然也是行的,只是花费的时间和精力可想而知,这酸爽,谁试谁知道。
这篇文章主要介绍下有关UIApplication、UIWindow以及程序的启动流程,通过这篇文章,相信你会更加理解iOS 的应用启动过程以及app应用级别的相关知识。
今天的博客算是比较基础的,还是那句话,基础这东西在什么时候都是最重要的。说到函数,只要是写过程序就肯定知道函数是怎么回事,今天就来讨论一下Swift中的函数的特性以及Swift中的闭包。今天的一些小实例中回类比一下Objective-C中的函数的写法等等。Swift中的函数还是有许多好用的特性的,比如输入参数,使用元组返回多个值, 定义形参名,设定默认参数以及可变参数等等一些好用的特性。而在Swift中的闭包就是Objective-C中的Block, 除了语法不通外,两者的用法是一样的。废话少说,开始今天的
1. AppDelegate应用程序代理 手机上的App有一个致命的缺点:很容易受到打扰。比如一个来电或者锁屏会导致app进入后台甚至被终止。 还有很多其它类似的情况会导致app受到干扰,在app受到干扰时,会产生一些系统事件,这时UIApplication会通知它的delegate对象,让delegate代理来处理这些系统事件。作用:当被打断的时候,通知代理进入到后台。 默认创建出来,有七个方法,解读如下: // 程序第一次加载完毕,就会调用此方法 - (BOOL)application:(UIAppl
学习移动app开发,我们常常从讲解基本的控件开始,如UILabel、UISearchBar、UIButton、UITextField等等。在实现一个简单的ios 应用之前,我们首先来看ios开发中一些基本的概念。 视图控制器(View Controllers) 视图控制器是MVC(Modl-View-Controller)模式的逻辑部分。按照字面意思,这个控制器能够控制某个视图。 UIViewController 苹果极力推崇MVC这种开发模式,并且帮我们实现了一个叫做UIViewController的控制
在今年的 IO 大会上,发布了一套叫 Android Jetpack 的程序库。Android Jetpack 里的组件大部分我们都接触过了,其中也有一些全新的组件,其中一个就是 Navigation。
说道抽屉效果在iOS中比较有名的第三方类库就是PPRevealSideViewController。一说到第三方类库就自然而然的想到我们的CocoaPods,今天的博客中用CocoaPods引入PPRevealSideViewController,然后在我们的工程中以代码结合storyboard来做出抽屉效果。 一.在工程中用CocoaPods引入第三方插件PPRevealSideViewController. (1).在终端中搜索PPRevealSideViewController的版本
本章节主要从视图、网络、设计模式几个方面考察开发者的开发水准,这是任何一个合格的 iOS 开发者都应该具备的基本素养。
今天我们来818《angularjs in action》的第三章controller和view。 1.Big Picture概览图 View是angularjs编译html后呈现出来的,需要编译的
在接触到CoreData时,感觉就是苹果封装的一个ORM。CoreData负责在Model的实体和sqllite建立关联,数据模型的实体类就相当于Java中的JavaBean, 而CoreData的功能和JavaEE中的Hibernate的功能类似,最基本是两者都有通过对实体的操作来实现对数据库的CURD操作。CoreData中的上下文(managedObjectContext)就相当于Hibernate中的session对象, CoreData中的save操作就和Hibernate中的commit,还
屏幕模式(1x, 2x, 3x):描述的就是屏幕中一个点有多少个 Rendered Pixels 渲染,对于2倍屏(又称 Retina 显示屏),会有 2 * 2 = 4 个像素的面积渲染,对于3倍屏(又称 Retina HD 显示屏),会有 3 * 3 = 9 个像素的面积渲染
Add Player 最终的设计看上去像下面这样:#接第一部分: 原帖地址 简书地址
控制器之间经常需要互相传递值,第一个控制器(简称 MasterVC)在通过 NavigationController Push 第二个控制器(简称 DetailVC)的时候,可以捕获到 DetailVC,所以可以设定后者的变量。而 DetailVC 在给 MasterVC 传递值的时候,比如设定 MasterVC 的 Title,却不能用同样的方式传值(试一下就知道了),而且因为我们要通过 NavigationController 返回原来的界面而不是 push 一个新的界面,所以也不能通过 segue 传值,解决方法我尝试了两种:
首先,页面上用的是plupload组件,在wkwebview上存在两个坑需要修复才能正常使用。
4 4月30日前完成适配,按照审核通常3~7天完成的话,4月23左右提交的App就应该完成以上适配
之前用淘宝给微信好友分享链接的时候,发现在微信中复制了宝贝的链接,然后再从后台切换到淘宝客户端,淘宝就会弹出一个页面,询问是否要跳转到相关页面,今天试着实现了一下,分享出来~
协议与委托代理回调在之前的博客中也是经常提到和用到的在《Objective-C中的委托(代理)模式》和《iOS开发之窥探UICollectionViewController(四) --一款功能强大的自定义瀑布流》等博客内容中都用到的Delegate回调。说到协议,在Objective-C中也是有协议的,并且Swift中的协议和Objc中的协议使用起来也是大同小异的,在Java等现代面向对象编程语言中有接口(Interface)的概念,其实和Swift中或者Objc中的Protocol(协议)是一个东西。
上一篇里,已经知道了“伪3D”是怎么回事,今天结合以前的做的图片广告轮换,又弄了一个图片切换的小东东,不知道以后有什么用,先贴在这里备份: 效果图: 因为silverlight的xml读取策略等其它原
IOS SDK6/Xcode4.5开始在Storyboad中新增很多功能对可视化的开发页面布局,导航更加方便,下面就写一下各种导航的实现。 1、不用像Xcode4之前必须删除默认的viewcontro
自定义View 通过纯代码自定义控件 继承自系统自带的控件,写一个属于自己的控件 在 .h 文件中声明模型对象 @class@property(nonatomic,strong)Shop *shop; 目的:封装控件内部的细节,不让外界关心 步骤 新建一个继承UIView的类 在initWithFrame:方法中添加子控件 当控件第一次创建或者通过 init 和initWithFrame 创建都会调用 initWithFrame方法 但是通过Xib创建且不通过 init 或 initWith
默认新建项目有两个文件LaunchScreen.storyboard和Main.storyboard
UIWindow是一种特殊的View 1.iOS启动完毕后,创建的第一个视图控件就是UIWindow。 2.接着创建控制器的View, 3.然后将控制器的view添加到UIWindow上 4.于是控制器的View就显示在屏幕上了。 5.也就是说没有UIWindow,就没有UI界面
iOS在写视图的有的人喜欢纯代码去写,从之前的绝对定位方式(Frame),到现在的自动布局(Autolayout),但这种方式的好处是便于复制修改和装X,但是缺点是代码不容易看,不便于修改
作者 | 黑超熊猫zuik,一个修行中的 iOS 开发,喜欢搞点别人没搞过的东西,钻研过逆向工程、VIPER 架构和组件化。
modal方式 就相当于一个一个桌子 push方式 就相当于摞盘子 所以push方式 打开的页面在原页面的上面,关闭的时候也只能从上往下关,不能关闭中间的一个 而modal方式 如果一个桌子上放了一碟盘子 ,那么关闭这个桌子的话,上面的所有盘子也会关闭
此篇文章偏向实战, 想深入学习 Router 思想的推荐霜神写的 iOS 组件化 —— 路由设计思路分析。
那么我们打开referencesource,搜索一下Triggers,发现居然有4种!!
我相信猿友大多数遇到bug崩溃时的程序都会跳到主函数,如下图: 无全局断点前的崩溃信息.png 设置全局断点的目的就是当产生异常或崩溃能够停留在异常或者崩溃发生的地方而不是跳转到主函数;但是如果添加全
最近的研究iOS程序侧边栏。渐渐的发现iOS该方案还开始采取风侧边栏格该,QQ,今日头条,Path(Path运营商最早的侧边栏app该,效果说成是Path效果),所以就研究了下。
Swift 可以为 struct 合成成员构造函数,但不能为 class 合成。Xcode 可以帮助生成代码,先选中类名,然后:
/Resources/OverwrideDefaultControlStyles.xaml
如果你的 app 有大量的窗口,故事板能帮你减少许多用于从一个窗口转到另一个窗口的导航代码。与每个viewcontroller一个单独的 nib 文件不同,你的 app 只需用一个故事板文件(其中可以包含所有的viewcontroller 以及它们之间的关系)即可。
图表 PNChart - 国内开源作者,动态的图表。 swift-linechart - 功能完整、实用的折线图组件。使用方便,参数配置简单。是不可多得的优质组件--swift。 ios-charts - 一款优秀 Android 图表开源库 MPAndroidChart 的 Swift 语言实现版(支持 Objective-C 和 Swift 调用)。缺省提供的示例代码为 Objective-C。 TEAChart - xhacker/TEAChart 一个简洁的 iOS 图表库,支持柱状图、饼图
领取专属 10元无门槛券
手把手带您无忧上云