zoukankan      html  css  js  c++  java
  • iOS UI基础-11.0 UINavigationController

    导航控制器

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

    UINavigationController的使用步骤

    • 初始化UINavigationController
    • 设置UIWindow的rootViewController为UINavigationController
    • 根据具体情况,通过push方法添加对应个数的子控制器

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

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

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

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

    销毁一个控制器

    [self dismissViewControllerAnimated:YES completion:nil];

    或者采用循环的方法,听说这种方法挺有效

    for (UIViewController *controller in self.navigationController.viewControllers) {
        if ([controller isKindOfClass:[你要跳转到的Controller class]]) {
            [self.navigationController popToViewController:controller animated:YES];
        }
    }

    导航栏

    导航栏的内容由栈顶控制器的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;

    另外技巧

    在View中获取当前导航栏

            // 假设 App 结构是 Root -> TabBar -> Navigation -> ViewController
            UITabBarController *tabBarControler = (id)[UIApplication.sharedApplication.delegate.window.rootViewController;
            UINavigationController *navigationController = tabBarControler.selectedViewController;

      

  • 相关阅读:
    起床困难综合症[NOI2014]
    暗之链锁
    平凡的测试数据
    烤鸡翅
    高一寒假集训总结
    聪聪和可可[NOI2005]
    方伯伯的玉米田[SCOI2014]
    aix5下安装python和cx_Oracle
    同样的一句SQL语句在pl/sql 代码块中count 没有数据,但是直接用SQl 执行却可以count 得到结果
    关于SQL优化的一个小试例子
  • 原文地址:https://www.cnblogs.com/jys509/p/4825437.html
Copyright © 2011-2022 走看看