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

Cocoa编程中视图控制器与视图类详解

进度与活动: UIActivityIndicatorView UIProgressView  控制器类 UIViewController类       UIViewController负责创建其管理的视图及在低内存的时候将它们从内存中移除...一、创建UITabBarController 常见的在应用程序委托类的applicationDidFinishLaunching:方法中创建,这通常可为应用窗口提供根视图。...• –viewDidLoad:当加载控制器的视图到内存时,该方法被调用。...控制器加载视图过程 当调用视图控制器的view属性时,视图控制器会先调用loadView方法加载视图,因此,可以在loadView方法中创建所有的视图,这是比较好的编程惯例。...事件处理 如图所示,一般情况下,当一个视图不响应用户事件时,它会将事件传递给它的父视图。但是,当视图被视图控制器管理时,它会将事件首先传递给视图控制器。

5.1K50

iOS开发UINavigation系列四——导航控制器UINavigationController

controller的管理         导航控制器是一个堆栈结构,只是其中管理的对象是controller,通过push与pop进行controller的切换,我们有两种方式可以创建导航控制器: /...:(UIViewController *)viewController animated:(BOOL)animated; //弹出一个视图控制器 返回的是pop的controller - (nullable... UIViewController *)popViewControllerAnimated:(BOOL)animated; //弹出到某个视图控制器 返回所有pop的controller - (nullable...//iOS7之后,在导航中右划会进行pop操作,设置这个的enable可以控制设置手势是否失效 @property(nullable, nonatomic, readonly) UIGestureRecognizer... *interactivePopGestureRecognizer; 四、iOS8后导航的新特性 //这个方法是为了iOS方法的命名统一,在导航中,其作用和push一样 - (void)showViewController

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

    玩转iOS转场动画 原

    本篇博客主要深入讨论视图控制器、导航控制器来进行界面跳转时的专场动画相关内容。...二、UIViewController进行模态跳转的转场     首先,使用CoreAnimation框架中的CATransition类也可以实现视图控制器的转场动画,前面的博客有过讨论,这里不再重复。...在界面跳转时,将要弹出的视图控制器设置如下: ViewController2 * v2 = [ViewController2 new]; self.transDelegate = [[TransDelegate...: //这个函数用来设置当执行present方法时 进行的转场动画 /* presented为要弹出的Controller presenting为当前的Controller source为源Contrller...我们在使用系统的导航控制器时,右划返回效果对用户体验十分友好,我们下面就来试着将视图控制器的模态跳转设计成类似导航可交互的。

    1.4K51

    iOS开发中标签控制器的使用——UITabBarController

    iOS开发中标签控制器的使用——UITabBarController 一、引言         与导航控制器相类似,标签控制器也是用于管理视图控制器的一个UI控件,在其内部封装了一个标签栏,与导航不同的是...,导航的管理方式是纵向的,采用push与pop切换控制器,标签的管理是横向的,通过标签的切换来改变控制器,一般我们习惯将tabBar作为应用程序的根视图控制器,在其中添加导航,导航中在对ViewController...通过点击下面的标签按钮,可以很方便的切换控制器。如果我们的控制器数超过4个,系统会被我们创建一个more的导航,并且可以通过系统自带的编辑来调整控制器的顺序,如下: ? ?...大于4个时,获取"更多"标签的导航控制器 @property(nonatomic, readonly) UINavigationController *moreNavigationController;...  //这个属性设置的是可以进行自定义排列顺序的视图控制器,如上面第二张图中的,默认是全部 @property(nullable, nonatomic, copy) NSArray<__kindof UIViewController

    1.8K20

    跟着官方文档学习3D Touch

    在app外,用户按压主屏幕图标就可以立即访问应用程序所提供的功能。 在app内,用户按压视图就可以预览额外的新内容,体验快速访问的特性。...另一类是在app内,稍用力按压某个视图,可以预览除去该视图额外的内容,再稍加用力按压屏幕,可以弹出另一个控制器界面,这个控制器界面就是点击这个被按压的视图将会跳转的控制器。...当用户触发相应的快捷操作项时,这个参数会被传递给应用程序,应用程序可以根据这个字符串(type)来对快捷操作项进行分类,然后在接收的类型中进行区分确定被处触发的快捷操作项的类型。...详细说明: 当iOS界面环境发生变化时,系统会调用这个代理方法。根据app实际需要,可以在视图控制器或者视图中实现这个代理方法,以响应一些改变。...比如:当iPhone从竖屏旋转到横屏时,你也许需要调整控制器的子视图的布局,我们可以在这个方法中进行操作。默认这个方法的实现是空实现,这也就说明,我们需要重写这个代理方法的实现。

    6.4K50

    ViewController及View的生命周期1. 起因2. Controller的生命周期3. View的生命周期4. 内存警告

    Controller的生命周期 系统提供了控制器从显示到消失的四个方法。 千万不要看到方法名中间出现了view就以为这是视图的方法。这些都是控制器的生命周期。...这个阶段会加载一些高开销的操作,例如:键盘弹出、特殊的过程动画(比方说修改状态栏、导航条颜色等等)这些。...iOS7新增加了导航控制器侧滑手势,当触发侧滑返回时,会调用系统的viewWillDisappear:方法,取消侧滑返回时又会调用viewWillAppear:方法。...(5_0); 在四个方法中: isMovingFromParentViewController 会在viewWillDisappear & viewDidDisappear 方法内部调用这个方法判断视图控制器的视图的隐藏是否因为视图控制器从它的容器视图控制器移除...更严谨一点,还需要判断view是否已经加载。如果没有加载,就不需要干掉了。 实际开发中为了写的少点,都会写在基类控制器中。 官方说,iOS 6.0以后系统就不会自动清理,需要手动清理。

    1.5K30

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

    当你新建 iOS 项目时,Xcode 会创建一个空白的 LaunchScreen.storyboard 供你使用。当应用程序加载视图控制器和布局时,将向用户显示此页面。...有时,由于内存不足,操作系统可能需要在应用程序处于后台时从内存中删除应用程序,如果不保留状态,应用程序可能会丢失其对最后一个UI状态的跟踪,可能会导致用户丢失正在进行的操作!...在多任务屏幕中,我们可以看到已放在后台的应用程序列表。我们可以假设这些应用程序仍在后台运行;实际上,由于内存的需求,一些应用程序可能会被系统杀死并重新启动。...您是否曾体验过,从多任务屏幕恢复应用程序后,该应用程序显示的用户界面与多任务视图中显示的快照有什么不一样? 这是因为应用程序没有实现状态恢复机制,当应用程序在后台被杀死时,显示的数据丢失。...可以将恢复标识符组合在一起以形成恢复路径。标识符是通过视图层次结构来分组的,从根视图控制器到当前活动视图控制器。

    3.2K30

    iOS6中横屏的处理方法 原

    有来那个方式设置: 1、在pilist的Supported interface orientations 字段中添加 ? 2、在Xcode的设置中勾选 ?...注意: 如果你们项目中的RootViewController是导航,你会发现,你在Push出来的视图中添加刚才的代码并没有起作用,原因是导航,并没有进行设置,我们创建一个文件,继承于NavigationController...];; } 我们还需要做一些处理,经过我的测试,导航必须在pop后才会重新调用这些函数,所以我的方法是这样做:弹出一个中间控制器后再POP回来 @implementation ViewController2...同理,如果根视图控制器是tabBar,则我们需要在tabBar中做操作。...如果我们大多是的视图控制器都是一个方向的,只有偶尔的几个会不同,这时候,我们其实可以采取presentationController的方式,然后直接在弹出的控制器中写那两个方法即可。

    1.1K60

    iOS 9人机界面指南(四):UI元素(上) - 腾讯ISUX

    当键盘被唤起、用户使用了手势、或者当前视图变为竖屏的情况下,导航栏可以隐藏。...在iOS 8以及之后的版本里,你可以通过UISearchDisplayController简单快捷地把搜索栏放在导航栏中。...请注意,当搜索的视图控制器包含在导航控制器里面的时候——比如在邮件应用(Mail)中那样,当用户激活搜索时,搜索栏会自动上浮,平铺到原来导航栏的位置上。...只有当用户点击“取消”按钮时,才清空他们在浮出层中输入的内容。 让浮出层中的箭头尽可能直接地指向其出处。这样有助于用户这个浮出层是从哪里来的,以及他们与哪些任务和对象相关。...iOS定义了在平铺型表格和分组型表格中最常用到的四种单元格布局样式。每种单元格样式都有最适合展示的信息类型。 重要 从编程角度来说,这些样式应用于单元格中,用以控制表格里每一列的绘制方式。

    10.1K51

    iOS基础问答面试题连载(二)-附答案

    UIWindow是一种特殊的UIView,通常在一个app中至少有一个UIWindow iOS程序启动完毕后,创建的第一个视图控件就是UIWindow,接着创建控制器的view, 最后将控制器的view...把当前窗口设置成应用程序的主窗口 8.如何从从StoryBoard加载控制器? 加载指定的storyBoard 加载箭头所指向的控制器....当调用push方法时, 会把要push的控制器添加到导航控制器管理的栈中,把之前导航控制器中栈顶控制器View给移除,把当前栈顶控制器添加上去. 15.导航pop做了哪些事情?...当调用pop方法时, 会把要pop的控制器从栈里移除,把之前导航控制器中栈顶控制器View给移除,把当前栈顶控制器添加上去. 16.如何设置导航条的内容?...导航控制器可以轻松的完成控制器之间的切换.其操作有push,pop等. 21.自动跳转与手动型跳转区别? 自动跳转:通过控件直接拖线的方式进行跳转 手动跳转:在跳转之前要去做一些处理工作.

    1.4K90

    iOS屏幕旋转及其基本适配方法

    3.Appdelegate&&Window中设置 正常情况下,我们的App从Appdelegate中启动,而Appdelegate所持有唯一的Window对象是全局的,所以在Appdelegate文件中设置屏幕旋转也是全局有效的...比如说我们设置要单个视图控制器可以自动旋转,这需要在视图控制器中增加shouldAutorotate方法返回YES或者NO来控制。...UINavigationController如下: //是否自动旋转 //返回导航控制器的顶层视图控制器的自动旋转属性,因为导航控制器是以栈的原因叠加VC的 //topViewController是其最顶层的视图控制器...方法2: 另辟蹊径,使用模态视图 使用模态视图可以不受这种根视图控制器优先级的限制。这个也很容易理解,模态弹出的视图控制器是隔离出来的,不受根视图控制的影响。...方法2:在需要默认横屏的界面里设置,进入时强制横屏,离开时强制竖屏 关于这种使用,这个具体可以参考第五节中的demo2 注:两种方法不可同时使用 八、关于旋转后的适配问题 屏幕旋转的实现会带来相应的UI

    9.5K60

    iOS开发常用之网络

    ZWSlideViewController - ZWSlideViewController多页滑动视图控制器,可以用最简单的继承方法使用,也可以不用继承,只用菜单或主视图页面,可实现丰富的定制,可以使用在多种不同形态的...一个用于统一管理导航栏转场以及当推或者弹出的时候使动画效果更加顺滑的通用库,并且同时支持竖屏和横屏。...可以当做一个标准控件用在iOS SDK中。 SwiftPages - 高可定制类似Instagram的视图滑动切换功能类.API简单,易用。...ADo_GuideView - 转动的用户引导页(模仿网易bobo)因为没有从应用程序包里抓到@ 3x的图片,建议在iPhone5模拟器运行,保证效果〜(版本新特性,导航页,引导页)。...教程 MYBlurIntroductionView - 方便好用的引导类库,在应用程序注册登录页面可以用到。

    23.7K10

    WKWebView

    其他的区别如下: 1,UIWebView是UIKit框架的一部分,可以在应用程序内使用,无需导入任何内容;而WKWebView使用的是WebKit.framework,使用的时候需要导入到应用程序中。...当电话链接被点击时,电话应用程序就会启动并拨打该号码。...网页视图的后退列表,即之前访问过的web页面的列表。 canGoBack。布尔值,指示后退列表中是否有可被导航到的后退项。 canGoForward。布尔值,指示后退列表中是否有可被导航到的前进项。...布尔值,用于确定是否按下连接可以显示链接目标的预览。 - goBack。导航到后退列表中的后腿项中。 - goForward。导航到后退列表中的前进项中。...关于KVO,我在之前的文章iOS开发中的设计模式--观察者模式中详述过。

    6K20

    iOS好用的第三方侧边栏控件——MMDrawerController

    ,其支持左侧抽屉和右侧抽屉,可以很好的支持导航控制器,并且支持开发者对手势和动画进行自定义。...MMOpenDrawerGestureModePanningNavigationBar = 1 << 1, //在中心视图控制器的视图上拖动时可以打开侧边栏 MMOpenDrawerGestureModePanningCenterView...= 1 << 2, //在中心视图控制器的视图边缘20个单位内拖动时可以打开侧边栏 MMOpenDrawerGestureModeBezelPanningCenterView...点击导航栏时可以关闭侧边栏 MMCloseDrawerGestureModeTapNavigationBar = 1 << 4, //点击中心视图控制器视图时可以关闭侧边栏...(nonatomic, assign) BOOL showsShadow; //设置是否显示状态栏的自定义视图 只有在iOS7之后可用 @property (nonatomic, assign) BOOL

    2.9K20

    iOS初步集成极光推送后你还要做这些事

    ● 当收到消息时,app在前台如何处理 ● 在后台如何处理? ● 未启动如何处理? ● 当app在前台收到消息如何跳转到指定页面?...○ 当收到消息时,app在前台如何处理?如何跳转?...,你有必要判断当前控制器是否可以push过去,即有没有导航栏,如果没有则不能push,当然也可以像我这样先跳转到个人中心,保证有导航栏,但是这样的处理也许不适用你的app....自定义消息,这个比较特殊,它必须是在app正在前台的时候才能收到消息,收到消息的位置而且不在代理中,而是在一个通知中。 ? 当注册极光后可以加入下面代码。注册一个通知。...通知一般不是广播式的,有时候需要针对不同用户群体或者个体发送通知,例如优惠券等。极光提供了几种区分用户的方法,在Web中我们可以看到 ?

    2.8K50

    iOS中UIPopoverController使用详解

    iOS中UIPopoverController使用详解 一、引言         UIPopoverController是Pad设备中常用的一种视图控制器,其在UI表现上为在当前视图控制器上面弹出一个子视图控制器...在iOS8之后,系统提供了UIPresentationController来代替她,UIPresentationController可以兼容iPhone与iPad。...(nonatomic, readonly) UIPopoverArrowDirection popoverArrowDirection; //这个属性可以增强控制器的交互能力 /* 默认情况下,当视图控制器弹出时...,点击界面上的其他位置,视图控制器会被隐藏 如果需要当视图控制爱弹出时界面上的其他控件依然可以进行用户交互,则需要将这些UI控件设置进这个数组中 */ @property (nullable, nonatomic...对象的popoverBacjgroundViewClass属性可以将一个自定义的类作为控制器的背景视图,需要注意,此自定义的类必须继承自UIPopoverBackgroundView,并且子类必须覆写父类中的一些列方法

    1.8K20

    IOS开发之视图和视图控制器

    视图(View), 视图控制器(ViewController)是IOS开发UI部分比较重要的东西。在学习视图这一块的东西的时候,感觉和Java Swing中的Panel差不多。...UIWindow可以不借助于父类视图显示在屏幕上,其余的视图都需要添加到父视图中才能显示。...我们还可以把视图看做是一个视图容器,视图上面还可以添加一个子视图。往父视图中添加的SubView会被放在一个数组中。...6.导航视图             页签条和导航条和视图控制器结合使用,为用户提供从一个屏幕到另一个屏幕的导航工具。...在本文刚开始的时候我们加入的view的代码都是在AppDelegate.m的文件里加的,其实没没那么做的,如果我们一直在上面的文件中实例化我们的各种控件,我们的应用程序代码会非常难维护。

    1.8K70
    领券