从Storyboard中的CustomView 连线的控件属性,用来作为容器视图,显示每个ChildViewController的内容 @IBOutlet weak var containView...添加需要切换的子控制器: RedController 和BlueController 为自定义的两个控制器,仅显示不同的视图颜色....点击下一个按钮, 从RedController 切换到BlueController @IBAction func clickBtn(_ sender: Any) { transition...修改4,5 步骤中的option 参数,可以实现不同的transition 效果. 0x04 : Present 动画效果 presentViewControllerAsSheet @IBAction...自定义present 动画时,需要注意事件穿透问题: 由于显示出来的控制器视图(Controller View)是通过addSubView方式添加到容器视图中,因此在控制器视图(Controller
三、使用PPRevealSideViewController来实现抽屉效果 当然了首先在pch文件中引入我们的第三方类库,然后使用即可 1.在storyboard拖出来我们要用的视图控制器...self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 5 6 //获取主视图的导航控制器...sideViewController.fakeiOS7StatusBarColor = [UIColor whiteColor]; 14 15 //把sideViewController设置成根视图控制器...self.revealSideViewController pushViewController:table onDirection:PPRevealSideDirectionLeft animated:YES]; 6 } 4.在导航页点击不同的按钮使用...PPRevealSideViewController跳转到不同的controller 1 - (IBAction)tap1:(id)sender { 2 UIStoryboard *storyboard
, 一个应用只需创建一次 UIWindow 窗口; -- FKViewController 属性 : 代表视图控制器, 系统创建控制器时, 通常会加载对应的 xib 文件; -- 应用初始界面 : 在...IOS 的 MVC 模式 - M(Model 模型) V (View 视图) C (Controller 控制器) IOS MVC 模式 : -- Model 模型 : Model 一般式普通的 Objective..., 箭头指向需要加载的 视图控制器; -- 移动箭头 : 视图中只有一个 UI 控制器, 移动箭头始终指向唯一的 一个 UI 控制器; -- 好处 : 可以直观地看到多个视图之间的协作关系, 可以在 Interface...Builder 中配置视图之间的切换关系; -- 图示 : (3) 工具图标 界面设计文件的 工具图标 : -- 缩小 : 多个视图控制器在同一个窗口, 缩小界面可以同时查看所有的 视图控制器;...IOS 图标设置 IOS 图片设置 : 直接从文件目录将图片拖动到 Xcode 相应的设置中. -- 设置图标 : 在项目文件视图中, 点击 Images.xcassets, 选中左侧的 AppIcon
1、UINavigationController, 继承UIViewController,UINavigationController以栈的形式保存子控制器 1)把控制器添加到导航控制器栈里有两种方式...addChildViewController:control]; 第二种方式:[nav pushViewController:control animated:YES]; 2)从导航控制器栈里中移出栈顶的控制器...*backBarButtonItem; //中间的标题视图 @property(nonatomic, retain) UIView *titleView; //中间的标题文字 @property...; 2)、Documents保存应用运行时生成的需要持久化的数据,iTunes同步设备时会备份该目录; 3)、tmp保存应用运行时所需的临时数据,使用完毕后再将相应的文件从该目录删除。...OK"; } /* 从用户偏好设置中读取数据 */ - (IBAction)readDataByUserPreference:(id)sender{ NSUserDefaults *ud =
显示 Main.storyboard 中初始化的控制器。 Storyboard介绍 容器概念。 is Initial View Controller(箭头移动)。...AppDelegate —> SceneDelegate 在 SceneDelegate 的willConnectToSession中纯代码初始化 UIWindow,并设置显示的第一个控制器。...UIView与UIViewController 初步印象 iOS 开发中,一个界面就是一个 UIViewController(视图控制器),界面上显示的内容就是 UIView(视图)。...开发中的其他 UIView(及其子类)都放在该view上。 UIViewController中UIView的生命周期函数 viewDidLoad:View 完成内存加载。...UIView 连线后改变类中的 @IBOutlet 或者 @IBAction 名字。
,但后来又出了一种方式,就是storyboard故事板子,其实storyboard和xib文件很像,最大的不同之处在于一个xib文件对应一个ViewController视图控制器,而storyboard...原始的storyboard中只有一个自带的视图,我们从右下角在拖一个View Controller上来,如图: 新版的Xcode创建的视图会是一个大方型的,要改成正常手机界面大小的haunted,选择视图上方的...那么我们需要一个标题栏,一个按钮和一个用于编辑和显示的编辑框,从右下方分别拖出Navigation Bar、Button、Text Field放在合适的位置,两个视图控制器都要放,如图: 至此,...在Page2的视图控制器中,把按钮关联到Page2ViewController中去,然后编辑按钮的响应方法: - (IBAction)toPage1:(id)sender { [self dismissViewControllerAnimated...首先要做的,还是把两个输入框关联到各自的视图控制器中去。
: a.png 在这个界面中整个核心就是右侧视图控制器ViewController,在ViewController中有一个视图UIView,这个视图用来放置其他用户操作控件。...视图控制器左侧的箭头表示这个视图控制器是个主视图控制器,程序启动之后默认就会直接显示这个视图控制器的视图。我们可以在项目属性中通过修改“Main Interface”属性来修改主视图控制器。...c.png 上面代码我们需要解释一下IBOutlet、IBAction,其余代码和我们之前写的ObjC没有任何区别。...IBAction:其实就是void,只是当你定义为IBAction在Interface Builder中可以关联到某个控件的事件方法(后面的关联操作将会看到,而且我们在代码中也可以看到代码前面多了空心圆点...d.gif 2.从控件场景中拖拽控件到代码,关联后属性或方法前的空心圆变成实心表示已经关联到具体控件。
使用segue最屌的就是,你不必写任何代码来present新的控制器,也不必使用IBAction方法连接按钮.你所做的只有从Bar Button Item 拖动到下一个控制器,就足以创建一个过渡了....然而新的控制器并不是非常有用 – 你甚至不能关闭它返回到上一个控制器.那是因为只有一个方法–虽然它可以从Player控制器到这个新的控制器,但是它却不能返回.....每一个静态单元格都只有一个实例,所以它完全是可以接受的在视图控制器里通过连线连接它们的子视图....Paste_Image.png 对于Ratings app来说,你不需要做任何想做的事.只需要使用table view controller然后它会根据不同设备尺寸自动地调整尺寸到合适的大小,你将会使用...tableView的视图控制器里起作用. ---- Note: 如果你创建了一个有很多静态单元格的控制器–很多都适合可见的frame–然后你可以用鼠标或触摸板滑动手势(2指点击)滑动它们在Interface
背景 iOS 中经常会有需要在某个界面改变状态栏颜色或者某个界面隐藏状态栏的需求。而改变状态栏颜色和控制状态栏显示和隐藏的API,在iOS 的不同版本中也发生了很多变化。...iOS 7以前 在iOS 7之前,状态栏是不占视图位置的。每个控制器中的根view都是从屏幕的Y轴20px处开始显示的。...plist设置 然后在视图控制器中,重写如下三个方法即可: ?...情形二 状态栏的样式、是否显示实际上是由顶层window的当前视图控制器决定的。...window和其根视图控制器的背景色必须为clearColor。
这是由iOS(操作系统)发送到正在运行的应用的信号,由于运行时错误,该信号将立即退出该应用。...这是发生了什么: 您在Interface Builder中创建了一个新的视图控制器,并使用一些UI元素(例如按钮和标签)对其进行了设置 您可以通过使用插座属性将这些UI元素连接至代码,这将在视图控制器的属性与...(大致而言),您的应用程序将使用XIB文件生成视图控制器的UI。...该应用程序此时告诉我们,视图控制器不符合该键的键值编码button。这意味着它无法button在视图控制器上找到该属性。没错,因为我们已经对其进行了重命名。...该违规代码是在第21行ViewController.swift,内部viewDidLoad()功能 你甚至可以看到,我们所使用的标的“吸气”Array 在崩溃之前,进行了大量与视图控制器相关的函数调用
下面的视图控制器之间的关系是如何用storyboard拖出来的,在之前的博客中有所提及,在这小编就不赘述了。 ViewController之间的关系大致入下图: ? ...2.在Tab Bar Controller中又对应着三个Navigation Controller,点击不同的item会跳转到不同的NavigationController。 ...presentViewController:myTabBarController animated:YES completion:^{ 15 }]; 16 } 17 } 2.如何给我们新建的视图控制器关联我们新建的视图控制器类呢...其实在我们storyboard中还是蛮简单的,在storyboard选择我们要关联的视图控制器,在 Class中选中我们新建的视图控制器类即可。...5.系统的退出功能:即退出到我们的登陆界面,下面的代码可以添加在TabView下面的任何ViewController中,代码如下: 1 //点击退出按钮 2 - (IBAction)tapExit:(id
-- 作用 : 控制分成几段; -- 展示效果 : (5) Segment 属性 Segment 属性 : -- 作用 : 为不同的分段设置对应的 标题, 图片 等内容; (6) Tittle...属性 Tittle 属性 : 每个 Segment 都有一个 Tittle 属性, 就是分段按钮每个按钮的标题; (7) Image 属性 Image 属性 : 为不同的 分段 Segment 设置图片...动态增加删除分段 (1) 主要 API 简介 插入 删除分段 : -- 插入分段 : 调用 segmentControl 的 insertSegmentWithTittle 方法, 参数一 标题, 参数二...- (IBAction)segmentControl:(id)sender; //点击背景控件方法 - (IBAction)clickBackGround:(id)sender; //添加分段控件...- (IBAction)addSegment:(id)sender; //删除分段控件 - (IBAction)minusSegment:(id)sender; @end -- OCViewController.m
效果图.gif 前言: 本文将会创建以下几个主类: DWContainerViewController:这包含了左视图,中视图和右视图控制器的视图,并处理动画和滑动等操作。...var leftViewController: DWSidePanelViewControllervar centerPanelExpandedOffset: CGFloat = 60 //该值是中央视图控制器在屏幕外动画显示后左侧可见的宽度...= UINavigationController(rootViewController: centerViewController) //加入centerViewcontroller的视图 view.addSubview...(centerNavigationController.view) //加入centerViewcontroller的视图控制器 addChildViewController(centerNavigationController...setTranslation:方法设置手势的偏移量 } case .ended: //根据不同的方向移动左或右 if let _ =
您的项目中是否有一个与此类似的main.storyboard文件? image.png 从设计师的角度来看,这看起来很不错:您可以轻松查看完整的UI和导航流程。...您需要为每个ViewController分配storyboard ID,这很容易出错:每次要在代码中使用ViewController时都需要对此ID进行硬编码 如何在项目中连接不同的故事板?...您可以使用相同的方法从nib初始化视图: class LoginView: UIView { static func nibInstance() -> LoginView?...对于Unwind Segues,您需要在目标视图控制器中编写代码。 prepareForUnwind方法的所有缺点prepareForSegue方法(见前面的建议) 什么是更简单的方法?...在代码中执行它更简单:不是为按钮创建“展开”动作,而是创建常规IBAction并使用dismissViewController或popViewController(取决于您的导航结构): @IBAction
AppleWatch开发入门三——代码交互与控制器生命周期 一、引言 在前两篇博客中,讨论了关于watch开发中框架与界面布局相关,然而主要的逻辑,终究还是要通过代码来实现的,在我们创建了项目之后...,就会生成InterfaceController这个文件,它就是我们storyBoard中的入口视图控制器。...二、代码交互与控制器声明周期 storyBoard中的控件我们可以通过拖拽的方式关联到文件中,Action和Outlet两种关联方式基本可以达到我们修改控件和处理业务逻辑的需求。 ...在模板中,系统为我们提供了三个函数,这三个函数体现了watch一个界面的声明周期,如下: //这个函数在初始化界面时会触发,通过context可以实现界面的传值 override func...在按钮触发的方法中,如下跳转: @IBAction func `switch`(value: Bool) { //这里的context是传值的上下文 //在awakeWithContext
iOS中的UIViewController是UIKit框架中最基本的一个类。从第一个UI视图到复杂完整项目,都离不开UIViewController作为基础。...从归档初始化 - (instancetype)initWithCoder:(NSCoder *)coder; //加载视图 -(void)loadView; //将要加载视图 - (void)viewDidLoad...三、从storyBoard加载UIViewController实例的传值陷阱 我们知道,当我们从StoryBoard中加载ViewController时,我们在Controller中拖拽的视图是可以被初始化的...例如,我们有一个controller1和一个controllert2,要使用unwind segue从2返回1,我们需要在2中实现如下格式的方法: - (IBAction)unwindSegueToViewController...; 2、模态跳转中Controller的从属 在我们进行控制器的跳转时,只要控制器没有被释放,我们都可以顺藤摸瓜的找到它,使用如下两个方法: //其所present的contller,比如
响应设备的方向变化。 有一些特殊的视图控制器(导航控制器、标签栏控制器)可以更加方便和规范地管理 UIView。 创建 storyboard 初始化箭头指向的 UIViewController。...loadView 方法大概的实现思路如下: func loadView() { // 如果UIViewController是通过storyboard创建的,从storyboard中加载视图来创建...注意:默认情况下返回按钮和左侧按钮是不同时显示的,只显示返回按钮而不显示左侧按钮。...其他 UITableViewController:表视图控制器,集成了 UITableView 的视图控制器。...UICollectionViewController:集合视图控制器,集成了 UICollectionView 的视图控制器。
您可以下载Final Xcode项目,以帮助您与自己的进度进行比较。 查看控制器 在主故事板中,让我们构建我们的集合视图。首先,把视图控制器从对象库旁边我们的视图控制器。...在第二个视图控制器和约束内插入一个UIView:0左,0右和0底(全部相对于superview)。取消选中“ 约束”到边距并将高度设置为380。 ?...在第一个图标的顶部,Control +从第一个图标(黄色圆圈)拖动到第二个图标的视图。它将创建一个segue并选择Present Modally。命名segue:HomeToDialog。...改变cell的颜色白,因为集合视图也是白色的。 ? MultipleScreens05 屏幕视图 然后,从对象库中,将Button拖放到cell内。...转到主故事板,启用Assistant Editor,从按钮创建IBAction。将其命名为:screenImageButtonTapped。
上一篇博客中提到了用CoreData来进行数据的持久化,CoreData的配置和使用步骤还是挺复杂的。但熟悉CoreData的使用流程后,CoreData还是蛮好用的。...Cookie和Session不同,Cookie是存在用户本地的一个文件,Cookie中存的就是用户的登陆信息,当用户在此登陆时,自动从Cookie中读取用户的登陆信息。 ...14 15 16 17 18 19 20 21 22 23 24 25 - (IBAction)tapLogin:(id)sender { //获取用户输入的信息 NSString...*storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:[NSBundle mainBundle]]; //如果用户未登陆则把根视图控制器改变成登陆视图控制器...18 - (IBAction)tapLoginOut:(id)sender { //获取UserDefaults单例 NSUserDefaults *userDefaults
,控制动画运行的节奏 枚举参数: (1)kCAMediaTimingFunctionLinear 时间曲线函数,匀速 (2)kCAMediaTimingFunctionEaseIn 时间曲线函数...: keyPath相应属性的结束值,到某个固定的值(类似transform的make含义) 注意:随着动画的进行,在长度为duration的持续时间内,keyPath相应属性的值从fromValue...UINavigationController就是通过CATransition实现了将控制器的视图推入屏幕的动画效果 属性: type:设置动画过渡的类型 枚举: kCATransitionFade...) endProgress:动画终点(在整体动画的百分比) 例子: - (IBAction)didRecognizeSwipeGesture:(UISwipeGestureRecognizer *)sender...view:需要进行转场动画的视图 options:转场动画的类型、效果,枚举类型 animations:将改变视图属性的代码放在这个block中 completion:动画结束后,会自动调用这个
领取专属 10元无门槛券
手把手带您无忧上云