码迷,mamicode.com
首页 > 移动开发 > 详细

iOS开发——控制器OC篇&UINavigationController&UITabBarController详解

时间:2015-07-30 22:43:03      阅读:191      评论:0      收藏:0      [点我收藏+]

标签:


UINavigationController&UITabBarController详解

  

一:UINavigationController

 

技术分享

 

 

 

控制器的属性

UINavigationController以栈的形式保存子控制器

  • @property(nonatomic,copy) NSArray *viewControllers;
  • @property(nonatomic,readonly) NSArray *childViewControllers;

 

导航控制器之间的跳转

使用push方法能将某个控制器压入栈

  • - (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated;

使用pop方法可以移除控制器

将栈顶的控制器移除

  • - (UIViewController *)popViewControllerAnimated:(BOOL)animated;

回到指定的子控制器

  • - (NSArray *)popToViewController:(UIViewController *)viewController animated:(BOOL)animated;

回到根控制器(栈底控制器)

  • - (NSArray *)popToRootViewControllerAnimated:(BOOL)animated;

 

 

常用控制器(导航)属性设置

导航栏的内容由栈顶控制器的navigationItem属性决定

UINavigationItem有以下属性影响着导航栏的内容

左上角的返回按钮

  • @property(nonatomic,retain) UIBarButtonItem *backBarButtonItem;

中间的标题视图

  • @property(nonatomic,retain) UIView          *titleView;

中间的标题文字

  • @property(nonatomic,copy)   NSString        *title;

左上角的视图

  • @property(nonatomic,retain) UIBarButtonItem *leftBarButtonItem;

UIBarButtonItem *rightBarButtonItem  右上角的视图

  • @property(nonatomic,retain) UIBarButtonItem *rightBarButtonItem;

 

 

Segue的属性(Storyboard上每一根用来界面跳转的线,都是一个UIStoryboardSegue对象(简称Segue))

根据Segue的执行(跳转)时刻,Segue可以分为2大类型

  • 自动型:点击某个控件后(比如按钮),自动执行Segue,自动完成界面跳转
  • 手动型:需要通过写代码手动执行Segue,才能完成界面跳转

 

Segue属性

  • 唯一标识
  • @property (nonatomic, readonly) NSString *identifier;
  • 来源控制器
  • @property (nonatomic, readonly) id sourceViewController;
  • 目标控制器
  • @property (nonatomic, readonly) id destinationViewController;

 

 

Segue方法

  • [self performSegueWithIdentifier:@"login2contacts" sender:nil];
  • // Segue必须由来源控制器来执行,也就是说,这个perform方法必须由来源控制器来调用
  • - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender;
  • [self performSegueWithIdentifier:@“login2contacts” sender:@“jack”];

 

二:UITabBarController

技术分享

 

 

UITabBarController的使用步骤

  1. 初始化UITabBarController
  2. 设置UIWindow的rootViewController为UITabBarController
  3. 根据具体情况,通过addChildViewController方法添加对应个数的子控制器

 

UITabBarController添加控制器的方式有2种

添加单个子控制器

  • - (void)addChildViewController:(UIViewController *)childController;

设置子控制器数组

  • @property(nonatomic,copy) NSArray *viewControllers;

 

注意:UITabBarButton里面显示什么内容,由对应子控制器的tabBarItem属性决定

 

UITabBarItem有以下属性影响着UITabBarButton的内容

  • 标题文字
  • @property(nonatomic,copy) NSString *title;
  • 图标
  • @property(nonatomic,retain) UIImage *image;
  • 选中时的图标
  • @property(nonatomic,retain) UIImage *selectedImage;
  • 提醒数字
  • @property(nonatomic,copy) NSString *badgeValue;

 

控制器的展示方式(开发中很重要)

以Modal的形式展示控制器

  • - (void)presentViewController:(UIViewController *)viewControllerToPresent animated: (BOOL)flag completion:(void (^)(void))completion

关闭当初Modal出来的控制器

  • - (void)dismissViewControllerAnimated: (BOOL)flag completion: (void (^)(void))completion;

 

三:UINavigationController&UITabBarController使用实战:

技术分享

本文只是简单的介绍关于UINavigationController喝UITabBarController的一些常用属性方法和使用技巧,关于基本使用和实战篇,请看后面的文章,后面我将结合着两个控制器应用到实际开发中去实现目前iOS开发的主流框架:

其实就是相当于我们项目开发中的App环境的搭建

 环境搭建之玩转UINavigationController与UITabBarController

环境搭建之纯代码:http://www.cnblogs.com/iCocos/p/4690677.html

环境搭建之Xib:http://www.cnblogs.com/iCocos/p/4690714.html

环境搭建之StoryBoard:http://www.cnblogs.com/iCocos/p/4690659.html

iOS开发——控制器OC篇&UINavigationController&UITabBarController详解

标签:

原文地址:http://www.cnblogs.com/iCocos/p/4690641.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!