iOS开发UINavigation系列一——导航栏UINavigtionBar摘要iOS中的导航条可以附着于导航控制器之中使用,也可以在controller中单独使用,这篇博客,主要讨论有关导航栏的使用相关方法.iOS开发UINavigation系列一——导航栏UINavigtionBar一.导航栏的使用        在iOS开发中,我们通常会使用导航控制器,导航控制器中封装了一个UINavigationBar,实际上,我们也可以在不使用导航控制器的前提下,单独使用导航栏,在UINavigat…
(1)导航控制器初始化的时候一般都有一个根视图控制器,导航控制器相当于一个栈,里面装的是视图控制器,最先进去的在最下面,最后进去的在最上面.在最上面的那个视图控制器的视图就是这个导航控制器对外展示的界面,也就是用户看到的界面. (2)我们需要把导航控制器加载到APP中,需要把这个导航控制器设置为window的根视图控制器(都是控制器类,可以赋值),这样就相当于加载到了window里. (3)我们要在栈中新增或者删除一个视图控制器,就需要得到导航控制器,一般在栈中得所有视图控制器都有一个self.…
UIApplication 每一个应用都有自己的UIApplication对象,而且是单例的 通过[UIApplication sharedApplication]可以获得这个单例对象 一个iOS程序启动后创建的第一个对象就是UIApplication对象 单例对象的获取     UIApplication *app = [UIApplicationsharedApplication]; 隐藏状态栏     // 1.隐藏状态栏,ios7以后默认是由控制器控制的,如果要用UIApplicatio…
iOS开发UI篇—控制器的创建 说明:控制器有三种创建方式,下面一一进行说明. 一.第一种创建方式(使用代码直接创建) 1.创建一个空的IOS项目. 2.为项目添加一个控制器类. 3.直接在代理方法中创建一个控制器. #import "YYAppDelegate.h" #import "YYViewController.h" @implementation YYAppDelegate - (BOOL)application:(UIApplication *)appl…
iOS开发UI篇—控制器的View的创建 一.6种创建控制器View的方式 #import "NJAppDelegate.h" #import "NJViewController.h" /* 1.没有同名xib情况下 2.通过 storyboard 创建 3.有指定xib情况下创建 4.有同名xib情况 5.有同名去掉controll的情况 6.loadveiw */ @implementation NJAppDelegate - (BOOL)application…
iOS开发中视图控制器ViewControllers之间的数据传递 这里我们用一个demo来说明ios是如何在视图控制器之间传递重要的参数的.本文先从手写UI来讨论,在下一篇文章中讨论在storyboard中传递数据. 首先新建一个空工程,并添加一个根视图控制器类,如下图所示: # 在函数didFinishLunchingWithOption中添加几行代码,完成后如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 - (BOOL)application:(UIApplication…
1 VC之间的跳转和正向传值 1.1 问题 在实际的开发中更多的应用都会有多个页面组成,每个页面展示不同的信息,页面之间的跳转是由视图控制器来实现的,本案例实现两个页面的之间的跳转和页面之间的正向传值,如图-1所示: 图-1 1.2 方案 首先使用Xcode创建一个SingleViewApplication项目,然后创建两个带有xib的视图控制器,继承至UIViewController类,分别命名为TRFirstViewController和TRSecondViewController. 在TR…
实验说明 (1)正向传值:比如A类里地值要传给B类用,就是我们先在A类中声明一个B类对象(当然B类头文件要import过来),然后把A类中得某个 值传递给B类中得某个值(所以需要在B类中先准备一个变量来接受,就是用@property和@synthesize整个变量即可). (2)反向传值:比如需要把B类中的值传递给A类用.我们先在B类中写一个协议,协议里面有一个可以带参数的方法,这个参数就是我们要传递的值 (这个协议也可以单独写,不一定写在B类中),然后B类遵循这个协议后,利用这个协议创建一个委…
1.AppDelegate.m老生常谈了,创建window,创建根视图rootViewController - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; self.win…
UINavigationController *navigationVC = self.navigationController; NSMutableArray *viewControllers = [[NSMutableArray alloc] init]; //    遍历导航控制器中的控制器 for (UIViewController *vc in navigationVC.viewControllers) { //        HSYPersonalCenterController就是…
导航控制器管理一系列显示层次型信息的场景.它创建一个视图管理器"栈",栈底为根视图控制器,用户在场景间切换时,依次将试图控制器压入栈中,且当前场景的试图控制器位于栈顶.要返回上一级,导航控制器将弹出栈顶的控制器,从而回到它下面的控制器. 导航控制器还管理一个导航栏(UINavigationBar).导航栏类似于工具栏,但它是使用导航项(UINavigationItem)实例填充的,该实例被加入到导航控制器管理的每个场景中.默认情况下,场景的导航项包含一个标题和一个Back按钮.Back…
前言           近期在做项目时遇到了好几起由于自动偏移或则没有自动偏移而导致的界面布局问题,尤其是在昨晚新版本赶上IOS9系统升级的时候,刚升级完了后就发现项目里面很多使用UINavgation控制器管理的ViewController里的TableView出现了不同程度的怪异现象,有些TableView直接以Frame的原点(0.0)为起始坐标点,有的则是以(0.128)为起始点,正确的应该是以(0.64)作为起始点,当时为了赶时间,于是就采取了笨办法,通过判断版本来手动调节远点的位置…
#import "ViewController.h" #import "ScoietyViewController.h" #import "HotViewController.h" #import "TopLineViewController.h" /* 父子控制器:多控制器管理:导航控制器,UITabBarController 默认UITabBarController,实现这种效果,父子实战 永远只会显示一个view,把之前…
    NSArray *segmentedArray = [NSArrayarrayWithObjects:STR(@"Mynews"),STR(@"Systemmessage"),nil];     UISegmentedControl *segmentedControl = [[UISegmentedControlalloc]initWithItems:segmentedArray];     segmentedControl.backgroundColor…
今天我们来说下iOS中的分段选择控制器UISegmentedControl,这一控件有什么作用呢 每个segment都能被点击,相当于集成了多个button 通常我们会点击不同的segment来切换不同的view 那么它实现了一个什么效果呢,我们先看下图: 这就是我们实现的效果,这里家具.灯饰等等每一项就是一个按钮,点击会触发不同事件或跳转到不同页面 那么怎么实现这一效果能,只需要简单几句代码: //先生成存放标题的数据 NSArray *array = [NSArray arrayWithOb…
第一个ios程序 @interface ViewController : UIViewController @property(nonatomic, weak)IBOutlet UILabel *lable; @end @interface ViewController () @end @implementation ViewController /** 红色按钮 */ - (IBAction)redBtnClick { // -[ViewController redBtnClick] NSLo…
iOS8以后, 苹果公司推出了UIPresentationController, 通过其(presentedController 和 presentingController)来控制modal控制器操作. 我对跳转 进行了封装, 只需要将单例对象设置为 VC的 transitioningDelegate! 自定义modal步骤: 1. 设置过渡代理 secVC.transitioningDelegate = [ROTransition sharedROTransition]; 2. 设置展示样式…
最近对view的周期等还不是非常清楚,就找到顶哥的文章,非常不错,就搬运过来了. 原文: http://www.cnblogs.com/wendingding/p/3770760.html 一.6种创建控制器View的方式 1 #import "NJAppDelegate.h" 2 #import "NJViewController.h" 3 /* 4 1.没有同名xib情况下 5 2.通过 storyboard 创建 6 3.有指定xib情况下创建 7 4.有同名…
我原先是这么做的,通常也是这么做 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for customization after application launch. ViewController *firstVC = [[ViewController alloc] init]; UIN…
视图控制器应该在MVC设计模式中扮演控制层(C)的角色,UIViewController的职责对内管理与之关联的View,对外跟其他UIViewController通信和协调.一个视图控制器管理一个视图(它可以有子视图),其view属性指向它所管理的视图.UIViewController类可以有子类,可以使用一个系统的UIViewController子类或者直接自己创建一个UIViewController的子类. 使用代码创建控制器和视图. 开始创建一个基于窗口的Empty Applicatio…
导航到地图,已经不是什么新鲜事了.网上有好多参考的资料,我总结出只需要两步 第一步:在info中加上支持的各平台 比如:iosamap高德地图.comgooglemaps谷歌地图.baidumap百度地图.qqmap腾讯地图 <key>LSApplicationQueriesSchemes</key> <array> <string>iosamap</string> <string>comgooglemaps</string&g…
1 拖进去scrollView 添加约束(0,0,0,0);     2 更新scrollView约束,然后在scrollView上面加个view,设置其约束为(0,0,0,0) 和 水平滑动约束;       此时为下图 此时会报红色,是因为约束没有加够,此时给新添加的view命名为”RedView”(方便观看而已),这时同时选中Controller自带的view和RedView,添加等宽等高约束   3 点击RedView,在右侧选中其宽度约束双击     双击宽度约束,进来发现Multip…
-(void)dismissToRootViewController { UIViewController *vc = self; while (vc.presentingViewController) { vc = vc.presentingViewController; } [vc dismissViewControllerAnimated:YES completion:nil]; }…
介绍:在iOS中,导航控制器UINavigationController是默认实现左侧边缘侧滑手势出栈的,但是如果当开发者对导航控制器子控制实现自定义leftBaButtonItem时,这个侧滑功能就会失去效果,此时就需要我们在自定义的NavigationController中手动代码去实现了.有的时候为了提高用户体验,会试着进行全屏的侧滑返回,现在这个技术已经普遍应用到app中.下面就来介绍边缘侧滑和全屏侧滑返回..... 第一种方式:实现左侧边缘侧滑返回(系统自带的边缘侧滑,安全可靠) //…
iOS开发UI篇—多控制器和导航控制器简单介绍 一.多控制器 一个iOS的app很少只由一个控制器组成,除非这个app极其简单.当app中有多个控制器的时候,我们就需要对这些控制器进行管理 有多个view时,可以用一个大的view去管理1个或者多个小view,控制器也是如此,用1个控制器去管理其他多个控制器 比如,用一个控制器A去管理3个控制器B.C.D.控制器A被称为控制器B.C.D的“父控制器”:控制器B.C.D的被称为控制器A的“子控制器” 为了便于管理控制器,iOS提供了2个比较特殊的控…
IOS开发UI篇—导航控制器属性和基本使用 一.导航控制器的一些属性和基本使用 1.把子控制器添加到导航控制器中的四种方法 (1) 1.创建一个导航控制器 UINavigationController *nav=[[UINavigationControlleralloc]init]; 2.设置导航控制器为window的根视图 self.window.rootViewController=nav; 3.添加 YYOneViewController  *one = [[YYOneViewContro…
学到这里感觉有点难了,其实这篇文章再草稿箱里放了好久了~ 最近对于学习的热情下降了.这不行-抓紧学习走起! 在这一章节的学习中主要针对导航控制器及表视图来建立多视图的应用, 首先要了解一些概念-- 1.导航控制器 UINavigationController是用于构建分层应用程序的主要工具,它在管理以及换入和换出多个内容视图方面与UITabBarController较为类似. 两者间的不动之处在于UINavigationController是作为栈来实现,这让他非常适用于处理分层的数据.栈:先进…
/** 导航控制器掌握: 1.创建导航控制器 UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:self.viewController]; 2.zhan (zhan 中所有的子控制器) self.navigationController.viewControllers; 3.将控制器压入zhan 中 [self.navigationController pushView…
****HMAppDelegate.m @implementation HMAppDelegate - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; // Overrid…
● UINavigationController的使用步骤 ➢ 初始化UINavigationController ➢ 设置UIWindow的rootViewController为UINavigationController ➢ 根据具体情况,通过push方法添加对应个数的子控制器 UINavigationController的子控制器 ● UINavigationController以栈的形式保存子控制器 @property(nonatomic,copy) NSArray *viewContr…