• UINavigationController的简单学习



    UINavigationController

    UINavigationController俗称导航控制器(导航栏),可以看做是一个试图控制器的容器,他是视图与视图之间联系沟通的桥梁,主要用于试图控制器之间的沟通,一般作为根视图控制器使用。

    一.UINavigationController的属性

    1、         创建:在appdelegate里的didfinishlaunsh方法里创建,创建的同时需要给UINavigationController设置艮视图控制器:

    //首先创建自己的视图控制器

    ViewController *vc = [[ViewController alloc]init];

    //然后创建导航控制器,并且将上一步创建的ViewController对象设置为导航控制器的根控制器

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

    //最后将导航控制器设置为窗口的根控制器

    self.window.rootViewController = nav;

    2、      self.title = @"导航";//设置导航条在某试图控制器中的标题(在对应视图控制器中设置)

    3、         self.navigationController.navigationBar.titleTextAttributes = [NSDictionary dictionaryWithObjectsAndKeys:[UIColor whiteColor],NSForegroundColorAttributeName, nil];//修改标题颜色

    4、         self.navigationController.navigationBar.translucent = NO;//设置导航条半透明状态,默认为yes,会遮挡住self.view的64像素的高度

    5、         [self.navigationController.navigationBar setBarTintColor:[UIColor blackColor]];//设置navigationbar的颜色

    6、         [self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"nav_bg"] forBarMetrics:UIBarMetricsDefault];//设置背景图片(注意尺寸)

    7、         self.navigationController.navigationBarHidden = YES;//隐藏导航条

      [self.navigationController setNavigationBarHidden:YES animated: YES];//隐藏导航条,是否带动画

    二.UINavigationController的界面之间的转换

    8、         [self.navigationController pushViewController:sec animated:YES];//推到下一个视图

    9、         [self.navigationController popViewControllerAnimated:YES];//返回上一级视图

    10、     [self.navigationController popToRootViewControllerAnimated:YES];//退回到根视图

    11、      (NSArray *)popToViewController:(UIViewController *)viewController animated:(BOOL)animated; //返回指定视图

    12、     UIViewController *vc = [self.navigationController.viewControllers objectAtIndex:0];//获得导航控制器的viewcontrollers栈

    13、     UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:@"返回"  style:UIBarButtonItemStylePlain  target:self  action:nil];//设置导航条返回按钮的标题

    self.navigationItem.backBarButtonItem = backButton;

    14、     //自定义返回按钮:

         UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];

        button.frame = CGRectMake(10, 10, 40, 40);

        [button setTitle:@"返回" forState:UIControlStateNormal];

        [button setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];

        UIBarButtonItem *left = [[UIBarButtonItem alloc] initWithCustomView:button];

        self.navigationItem.leftBarButtonItem = left;

    15、     //自定义titleView

    UISegmentedControl *seg = [[UISegmentedControl alloc] initWithItems:@[@"1",@"2"]];

    seg.frame = CGRectMake(0, 10, 80, 20);

    self.navigationItem.titleView = seg;

  • 相关阅读:
    代理模式
    适配器模式
    原型模式
    创建者模式
    装饰模式
    web总结
    4.14
    4.14
    POJ2385
    POJ2229
  • 原文地址:https://www.cnblogs.com/wyhwyh2114/p/5064687.html
Copyright © 2020-2023  润新知