iOS 视图控制器
文章平均质量分 69
番薯大佬
码农一枚
展开
-
iOS13适配—— presentViewController模态弹出默认样式改变
为什么在 iOS13中,presentViewController新的视图控制器时不是全屏的?在 iOS13中,presentViewController新的视图控制器时,是以分页模式展示的,而不是以往的全屏模式。原因是因为苹果将 UIViewController 的 modalPresentationStyle 属性的默认值改成了新加的一个枚举值 UIModalPresentationAu...原创 2020-03-15 00:43:48 · 4771 阅读 · 0 评论 -
push栈中删除指定的controller视图控制器
当A视图控制器push到C视图控制器时,受条件影响,需要先push到B视图控制器,然后再由B视图控制器push到C视图控制器;最后C视图控制器pop回时,直接pop到A视图控制器,由下图所示:通常返回上一级视图控制器时,会使用到如下两个方法// 返回到上一级视图控制器[self.navigationController popToRootViewControllerAnimated:YES];/// 返回到指定的上一级视图控制器[self.navigationController popToV原创 2020-08-22 18:59:17 · 792 阅读 · 0 评论 -
UIViewController的使用说明及其生命周期
UIViewController视图控制器,主要作用:用于控制UI的展现,以及数据model与UI的交互 使用注意事项: 1、controller视图控制器切换方法有两种 1-1、push方法,即 - (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated;原创 2016-06-25 21:55:18 · 1284 阅读 · 0 评论 -
状态栏与导航栏的隐藏或显示操作
[UIApplication sharedApplication].statusBarHidden = NO;[self.navigationController setNavigationBarHidden:NO animated:YES];原创 2014-05-30 09:25:52 · 1809 阅读 · 0 评论 -
如何判断UIViewController是使用pop,dismiss返回到上级视图控制器
当我们自定义继承UIViewController视图控制器的基类视图控制器时,会新增返回到上级的视图控制器方法,于是就要区分,返回时使用 pop 的方法,还是使用dismiss 的方法了。方法1- (void)backPreviousController{ if (self.presentingViewController) { [self dismis原创 2016-12-14 10:15:25 · 10163 阅读 · 0 评论 -
抽屉视图控制器(IIViewDeckController和RESideMenu)的使用
ViewDeck RESideMenuViewDeck使用效果 代码示例// 导入头文件#import "IIViewDeckController.h"// 定义成属性(便于全局操作)@property (nonatomic,strong) IIViewDeckController *iiViewDeckC;// 实例化self.iiViewDeckC = [[IIViewDeckCont原创 2017-09-18 17:26:19 · 716 阅读 · 0 评论 -
UINavigationController使用时,显示或隐藏的功能设备,导航栏隐藏时出现空白黑色区域?
UINavigationController使用时,导航栏隐藏时出现空白黑色区域?隐藏导航栏共有3种方法,使用方法3,且animated必须设置为YES,则可以避免出出空白黑色区域。方法1 [self.navigationController.navigationBar setHidden:YES];方法2 [self.navigationController原创 2014-06-21 22:45:12 · 4097 阅读 · 1 评论 -
UITabBarController的使用
UITabBarController 是多页面视图控制器切换控制器一、主要使用方法,即属性设置:1、视图控制器集合:viewControllers2、切换视图属性:tabbar2-1、tabbar背景颜色:backgroundColor2-2、tabbar背景图标:backgroundImage2-3、tabbar标题(选中,或非选中状态):UITabBarItem,- (...原创 2016-07-01 01:06:49 · 2946 阅读 · 0 评论 -
iPad开发中UISplitViewController和UIPopoverPresentationController的使用
对于 iPad 开发来说,因为屏幕大,为了用户操作的方便,所以通常使用 UISplitViewController来实现导航。 同时也会使用UIPopoverPresentationController实现浮窗功能。源码地址效果图 代码示例: 设置根视图控制器- (BOOL)application:(UIApplication *)application didFinishL...原创 2018-07-12 15:46:13 · 710 阅读 · 0 评论 -
导航栏控制器的渐变
效果图 实现步骤 1、设置导航栏视图控制器中的navigationBar背景图标[self.navigationController.navigationBar setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsDefault];2、设置导航栏视图控制器中的navigationBar子视图的背景颜色ba...原创 2018-07-06 01:42:30 · 337 阅读 · 0 评论 -
状态栏字体颜色设置
根据不同的主题设置状态栏的字体颜色,主要有以下几种实现方法。注意:状态栏的字体颜色分两种,一种是黑色,另一种是白色。步骤1设置info.plist中的属性View controller-based status bar appearance的值设置为NO步骤2在AppDelegate.m的方法中如下设置,默认会显示黑色等于为你的app状态栏设置一个主颜色,示例如下:- (BOOL)...原创 2019-01-10 14:57:29 · 3035 阅读 · 0 评论 -
UITabBarController的使用自定义UITabBar样式
UITabBarController的使用过程中,可能会出现需要自定义UITabBar样式的时候,下面介绍两种实现方法。方法1存在N个视图控制器,且需要使用自定义的UITabBar样式来进行交互操作哪个视图控制器的显示。具体做法是在UITabBarController中的view中添加自定义样式的子视图,设置子视图响应方法跳转对应的视图控制器,然后再通过UITabBarController的代...原创 2019-03-07 18:42:00 · 5286 阅读 · 0 评论 -
视图控制器的各种frame获取
获取全屏视图的位置大小,高包含状态栏和导航栏高UIScreen.mainScreen.bounds{0,0,320,568}获取全屏视图的位置大小(@2x)UIScreen.mainScreen.nativeBounds{0,0,640,1136}获取全屏视图的位置大小,高不包含状态栏UIScreen.mainScreen.applicationFrame{0,20,320,548...原创 2019-07-08 17:45:58 · 510 阅读 · 0 评论 -
横竖屏的转换及页面适配
横竖屏的转换,既可以手动操作实现,也可以自动旋转设备实现。情况1:APP项目所有页面既支持横屏,又支持竖屏。在项目配置中设置了支持横竖屏,则不需要对视图等做过多的配置即可实现横竖屏。如图所示:情况2:APP项目根据需要,个别页面需要既支持横屏,又支持竖屏。在项目配置中设置了只支持竖屏。如图所示:实现逻辑示例代码:1、AppDelegate.h中定义是否允许旋转的变量#impor...原创 2018-10-29 13:38:27 · 1953 阅读 · 0 评论 -
UINavigationController转场不同背景颜色的设置异常(无push效果)
UINavigationController可以设置不同背景颜色的导航栏视图控制器,但是不管是如何设置,在push下一个视图控制器时,导航栏背景颜色的显示都没有那种push出来的感觉,有的只是淡入淡出的感觉。这让人很不爽,摸索了一段时间,只能是通过自定义导航栏视图来解决(使用自定义导航栏视图时,需要将系统的导航栏视图隐藏)。顺便复习下导航栏控制器相关属性的设置:// 导航栏属性/原创 2016-07-11 10:50:11 · 3991 阅读 · 0 评论 -
UINavigationController常用属性设置
// 1 设置导航栏标题// 方法1self.title = @"导航栏控制器";// 方法2 当有tabbarController时使用该方法,避免影响标题设置self.navigationItem.title = @"导航栏控制器标题";// 2 设置自定义导航栏标题子视图UIImageView *titleImageView = [[UIImageView alloc]原创 2016-06-23 22:10:37 · 603 阅读 · 0 评论 -
如何设置导航栏底端内阴影
如何设置导航栏底端内阴影内阴影其实是shadowImage,设置该属性即可自定义,如设置回默认样式即为self.navigationController.navigationBar.shadowImage = nil;原创 2014-07-03 00:20:12 · 1676 阅读 · 0 评论 -
改变navigationBar的背景导致其他控件被覆盖
改变navigationBar的背景,如果调用时机不好会把navigationBar的其他控件覆盖掉,这个问题可以通过下面的方法很好的解决+ (void)setNavigationBar:(UINavigationController *)navigationController{if ([navigationController.navigationBar respondsToSelec原创 2014-07-03 00:19:56 · 859 阅读 · 0 评论 -
UINavigationController使用时出现自定义返回按钮与系统按钮在返回时同时出现情况?
UINavigationController使用时出现自定义返回按钮与系统按钮在返回时同时出现情况?在视图切换时,将系统返回按钮进行隐藏,即“[xxxx.navigationItem setHidesBackButton:YES]”原创 2014-06-21 22:44:17 · 710 阅读 · 0 评论 -
IIViewDeckController使用过程中,添加手势无效?
在使用自定义手势类中,添加定义“IIViewDeckController”类的头文件,同时在定义“IIViewDeckController”类的实现文件中或在自定义手势方法中重置“IIViewDeckController”的“panningMode = IIViewDeckNoPanning”方法。原创 2014-06-21 22:40:00 · 974 阅读 · 0 评论 -
UIBarButtonItem按钮
有时侯你并不想把导航条左侧按钮外观字体或背景全部用以下代码来更改[plain] UIBarButtonItem *rightItem = [YBarButtonItem barButtonWithStyle:YBarButtonStyleRoundedRectangle转载 2014-05-14 23:33:19 · 789 阅读 · 0 评论 -
点击状态栏返回到表视图顶端
设置表视图的属性“xxxTableView.scrollsToTop = YES;”;如果存在多个滚动视图时,则需要把其他滚动视图的对应属性设置为“xxxTableView.scrollsToTop = NO;”原创 2014-06-21 22:28:40 · 737 阅读 · 0 评论 -
表视图底部被遮挡显示不全?
列表视图或滚动视图在父视图中显示不全,或被UITabBarcontroller遮挡。设置视图属性 autoresizingMask,且值为 UIViewAutoresizingFlexibleHeight。示例如下:xxxView.autoresizingMask = UIViewAutoresizingFlexibleHeight;xxxScrollView.autoresizi...原创 2014-06-21 22:37:26 · 2284 阅读 · 0 评论 -
UIImagePickerController的简化使用
在使用UIImagePickerController时,常常需要写代理方法实现,感觉麻烦,自己封装了一个简单的方法,通过代码块来实现回调,以避免冗余。 相关代码如下:1、.h文件 #import <UIKit/UIKit.h>@interface ImagePickerManager : UIImagePickerController///设置代码块属性-...原创 2014-06-11 23:33:00 · 797 阅读 · 1 评论 -
自定义带返回上层视图的导航栏控制器(配合自定义视图使用)
iOS7.0开始,系统自带了手势向右拖动返回上一层视图控制器的功能。但很多时候,在开发过程中,会自定义一个基类视图控制器,这个时候当所有的视图控制器都是以继承这个基类进行开发时,系统自带的手势向右拖动返回功能就失去效果了。要解决这个问题,可以继承导航视图控制器,重写相关的方法就可以实现,另外,在使用时,如果要用到导航视图控制器,就必须用到自定义的导航视图控制器类。具体实现如下代码所示:原创 2016-05-25 09:45:45 · 1024 阅读 · 0 评论 -
自定义导航栏背景颜色
// 导航栏样式 UIImage *navImage = [selfimageWithColor:[UIColorbrownColor] size:CGSizeMake(1.0,1.0)]; [self.navigationController.navigationBarsetBackgroundImage:navImage原创 2014-08-24 23:41:55 · 1637 阅读 · 0 评论 -
导航栏a中跳转到自定义样式导航栏b
系统导航栏a中跳转到自定义样式导航栏b,再由b返回a时,a的样式变成了b的自定义样式?解决:方法1:在a视图即将显示时,再次设置其导航栏样式,从而避免被b样式覆盖。方法2:在视图b中,视图即将显示为设置新样式;视图即将消失时取消新样式,即设置回a视图样式。如下代码:- (void)viewWillAppear:(BOOL)animated{ [supe原创 2014-06-21 22:46:52 · 1016 阅读 · 0 评论 -
iOS App 生命周期
(一)App 的执行状态Not running:App 还没运行或者被系统 kill 掉了Inactive:App 运行在前台,但是不响应事件,例如来系统电话、呼出通知中心、呼出控制中心。可以理解为 App 在前台运行,但是被优先级更高的事件打断进入 Inactive 状态Active:App 在前台运行,并且响应事件Background:App 在后台,并且正在执行代码,即我们常说的转载 2016-04-10 01:19:04 · 778 阅读 · 0 评论 -
如何给UIViewController瘦身
一、开发中常见的现象和缺点iOS中最常见的一种设计模式就是MVC,但在实际开发过程中,我们因为这样、那样的原因让单纯的ViewController变成了集Model,Controller以及View的一个大集合,这样势必就会导致VC的代码容量呈几何增长。这样的代码会存在以下几个问题:1、不利于后续维护代码在一个公司的存活时间通常远长于你在公司的时间,你是否也在接手现有项目以后边看代原创 2015-05-10 22:46:59 · 875 阅读 · 1 评论 -
如何设置状态栏字体颜色
改变状态栏样式,只对iOS7及以上系统有效。 其实也就是改变状态栏的字体颜色,默认是黑色,可以根据导航栏背景颜色设置成白色(iOS7时,状态栏背景颜色为透明色会默认显示导航栏背景颜色) 步骤1 plist文件中设置『View controller-based status bar appearance = NO』,设置为YES时无效 步骤2设置状态栏字体颜色为白色,[[UIAppl原创 2014-08-24 23:39:28 · 1182 阅读 · 0 评论