zoukankan      html  css  js  c++  java
  • 学习IOS开发UI篇--UINavigationController/Segue

      UINavigationController的使用步骤
    1.初始化UINavigationController
    2.设置UIWindow的rootViewController为UINavigationController
    3.根据具体情况,通过push方法添加对应个数的子控制器
     
      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;回到根控制器(栈底控制器)
      UINavigationController修改导航栏的内容
      UINavigationItem有以下属性影响着导航栏的内容
    @property(nonatomic,retain) UIBarButtonItem *backBarButtonItem;   左上角的返回按钮
    @property(nonatomic,retain) UIView          *titleView;                        中间的标题视图
    @property(nonatomic,copy)   NSString        *title;             中间的标题文字
    @property(nonatomic,retain) UIBarButtonItem *leftBarButtonItem;     左上角的视图
    @property(nonatomic,retain) UIBarButtonItem *rightBarButtonItem;   右上角的视图
     
     
      Segue的属性:

    @property (nonatomic, readonly) NSString *identifier;        唯一标识    

    @property (nonatomic, readonly) id sourceViewController;      来源控制器

    @property (nonatomic, readonly) id destinationViewController;   目标控制器

    自动跳转(不需要进行判断操作的时候) 按住Control键点击按钮直接拖线到下一个控制器

    手动跳转(需要进行判断操作的时候)     按住Control键,从来源控制器拖线到目标控制器

      在恰当的时刻,使用perform方法执行对应的Segue

    [self performSegueWithIdentifier:@"login2contacts" sender:nil];    Segue必须由来源控制器来执行,也就是说,这个perform方法必须由来源控制器来调用

    调用sourceViewController的下面方法,做一些跳转前的准备工作并且传入创建好的Segue对象

    - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender; 在这个方法中可以取出目标控制器,对其进行数据操作(系统自动调用- (void)perform将目标控制器压入栈中)

      数据的顺传与逆传:

    顺传入上边进行的操作

    逆传需要设置代理,让之前的源控制作为之前目标控制器的代理,在之前的目标控制器中传入数据,通过代理调用协议方法,完成数据的传递

  • 相关阅读:
    POJ 1469 COURSES 二分图最大匹配
    POJ 1325 Machine Schedule 二分图最大匹配
    USACO Humble Numbers DP?
    SGU 194 Reactor Cooling 带容量上下限制的网络流
    POJ 3084 Panic Room 求最小割
    ZOJ 2587 Unique Attack 判断最小割是否唯一
    Poj 1815 Friendship 枚举+求最小割
    POJ 3308 Paratroopers 最小点权覆盖 求最小割
    1227. Rally Championship
    Etaoin Shrdlu
  • 原文地址:https://www.cnblogs.com/zhaoyan/p/3775517.html
Copyright © 2011-2022 走看看