zoukankan      html  css  js  c++  java
  • 【iOS系列】-UINavigationController的使用(Segue传递数据)

    【iOS系列】-UINavigationController的使用

    UINavigationController是以以栈(先进后出)的形式保存子控制器,

    常用属性:

    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;
    

    常用方法

    //push进栈
    - (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated;
    
    //pop出栈
    将栈顶的控制器移除
    - (UIViewController *)popViewControllerAnimated:(BOOL)animated;
    //回到指定的子控制器
    - (NSArray *)popToViewController:(UIViewController *)viewController animated:(BOOL)animated;
    //回到根控制器(栈底控制器)
    - (NSArray *)popToRootViewControllerAnimated:(BOOL)animated;
    

    Segue<仅仅针对SB连线>

    Segue:Storyboard上每一根用来界面跳转的线,都是一个UIStoryboardSegue对象


    属性

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

    操作
    Segue的跳转分为两大类:
    1:自动:点击按钮,或者控件后,自动执行;
    在Storeboard中直接在控件上,按住control键,往目标控制器脱线
    2:手动
    在源控制器上按住control键,往目标控制器脱线,不涉及具体控件
    手动的我们需要设置标识
    [self performSegueWithIdentifier:@"XXXX" sender:nil];
    手动Segue我们可以在控制器调转前后,执行操作或传递参数,

    //在源控制器中执行以下方法
    
    //第一:执行这个可以进行界面跳转,可在相关逻辑判断后进行界面的跳转
    [self performSegueWithIdentifier:@"XXXX" sender:nil];
    //第二:执行segue后,跳转前会调用,可在这里给下一个控制器传递数据
    - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender;
    

    第一:自动型Segue

    第二:手动型Segue
    图片名称
    第二:手动型Segue设置标识
    图片名称


    作者:Darren

    微博:@IT_攻城师

    github:@Darren90

    博客:http://www.cnblogs.com/fengtengfei/

    欢迎您的访问...


  • 相关阅读:
    C#中的委托是什么?事件是不是一种委托?
    SQL重点复习
    数据库生成脚本
    用Winfrom动态生成SQL的insert语句
    如何实现远程连接SQL Server 2008 Express
    跨页面传送
    win7 防火墙开启ping
    关于*.class和*.jar的几个基本认识
    使用cobertura确定测试代码的覆盖率
    Java学习笔记之I/O
  • 原文地址:https://www.cnblogs.com/fengtengfei/p/4435824.html
Copyright © 2011-2022 走看看