zoukankan      html  css  js  c++  java
  • iOS开发之UINavigationController

    1、概述:

    利用UINavigationController,可以轻松地管理多个控制器,轻松完成控制器之间的切换,典型例子就是系统自带的“设置”应用。

    2UINavigationController的简单使用

    UINavigationController的使用步骤:

    在MJAppDelegate的didFinishLaunchingWithOptions方法中完成下述操作:

    (1) 初始化UINavigationController

    UINavigationController *nav = [[UINavigationController alloc] init];

    (2) 设置UIWindow的rootViewController为UINavigationController

    self.window.rootViewController = nav;

    (3) 根据具体情况,通过push方法添加对应个数的子控制器

    UIViewController *vc1 = [[UIViewController alloc] init];

    vc1.view.backgroundColor = [UIColor redColor];

    [nav pushViewController:vc1 animated:YES];

    UIViewController *vc2 = [[UIViewController alloc] init];

    vc2.view.backgroundColor = [UIColor greenColor];

    [nav pushViewController:vc2 animated:YES];

    运行效果:

    在实际开发中往往是将一个ViewController加入UINavigationController,点击其中的按钮跳转到下一个ViewController。点击按钮跳转到下一个ViewController代码:

    TwoViewController *two = [[TwoViewController alloc] init];

    [self.navigationController pushViewController:two animated:YES];

    跳转到下一个ViewController后最上方导航栏会自动出现back按钮,点击可返回原来界面。

    3UINavigationController的子控制器

    UINavigationController以栈的形式保存子控制器,初始化UINavigationController时,可以通过initWithRootViewController:方法传入一个控制器作为根控制器,这个根控制器永远处于栈底(如果栈中只有一个对象,那么根控制器也处于栈顶)。

    @property(nonatomic,copy) NSArray *viewControllers;

    @property(nonatomic,readonly) NSArray *childViewControllers;

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

    - (void)pushViewController:(UIViewController *)viewController animated:

    (BOOL)animated;

    综上,在一个导航控制器中添加子控制器有下面三种方法:

    (1)[nav addChildViewController:myViewController];

    (2)[nav pushViewController: myViewController animated:YES];

    (3)nav.viewControllers = @[ myViewController];

    也可在初始化导航控制器时候直接添加子控制器:

    UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController: myViewController];

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

    栈顶的控制器移除:

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

    回到指定的子控制器:

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

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

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

  • 相关阅读:
    未能创建可接受的游标。
    怎样修改查看Oracle字符集
    2005年国内各大公司的薪酬一览 同学发给我的,留在这里刺激一下自己,不过他说到了中国工程物理研究院(四川绵阳) 对此不表同意,具体情况我可最清楚呀,哈哈
    破解低价笔记本惊人的秘密
    Struts 的安装、配置与运行zt
    有用的数据:30款市场主流车型真实油耗一览
    JDBC连接Oracle数据库常见问题及解决方法
    查锁的方法
    用Oracle闪回功能恢复偶然丢失的数据数据被误删除了,多亏了万能的oracle,....后怕
    powerdesigner中去掉生成sql中的引号
  • 原文地址:https://www.cnblogs.com/lifengfneg/p/4773885.html
Copyright © 2011-2022 走看看