UI_UINavigationController

原创 2015年07月08日 21:00:27

创建 UINavigationController(导航控制器)

在AppDelegate.m中创建

    // 创建一个普通控制器
    RootViewController *rootVC = [[RootViewController alloc] init];

    // UINavigationController主要用来管理一组控制器(至少有一个),自带 view 但是不使用
    UINavigationController *rootNC = [[UINavigationController alloc] initWithRootViewController:rootVC];

    // 添加 控件时 是否计算导航条的宽度 默认 YES
    rootNC.navigationBar.translucent = NO;

    // 改变导航条的字体颜色
    rootNC.navigationBar.tintColor = [UIColor blueColor];

    // 改变导航条整体颜色
    rootNC.navigationBar.barTintColor = [UIColor brownColor];

    // 改变导航条标题颜色
    rootNC.navigationBar.titleTextAttributes = @{NSForegroundColorAttributeName:[UIColor redColor]};

    // 给整个导航条加上背景图片
    [rootNC.navigationBar setBackgroundImage:[UIImage imageNamed:@"2.png"] forBarMetrics:UIBarMetricsDefault];



    self.window.rootViewController = rootNC;
    [rootVC release];
    [rootNC release];

入栈和出栈

在 view 中设置 button 属性,并创建 button
入栈要引入后一个页面的控制器(controller)

@property (nonatomic, retain)UIButton *button;

在 controller 中绑定并实现点击事件

- (void)viewDidLoad {
    [super viewDidLoad];

    self.title = @"首页";


    // 绑定点击事件
    [self.rootView.button addTarget:self action:@selector(buttonDidClicked:) forControlEvents:UIControlEventTouchUpInside];

}

#pragma mark - button 点击事件
- (void)buttonDidClicked:(UIButton *)sender
{
    ScendViewController *secondVC = [[ScendViewController alloc] init];
    // 压栈处理 进入下一个页面
    [self.navigationController pushViewController:secondVC animated:YES];
}

出栈

#pragma mark - 实现点击事件 出栈
- (void)buttonDidClicked:(UIButton *)sender
{
    [self.navigationController popViewControllerAnimated:YES];

}

指定页面跳转

#pragma mark - 通用方法 pop到指定控制器
- (void)button2DidClicked:(UIButton *)sender
{
    // pop 到指定控制器
//    [self.navigationController popToViewController:self.navigationController.viewControllers[0] animated:YES];

    NSArray *array = self.navigationController.viewControllers;

    RootViewController *root = nil;

    for (id VC in array) {
        if ([VC isKindOfClass:[RootViewController class]]) {
            root = VC;
            break;
        }
    }

    if (root != nil) {
        [self.navigationController popToViewController:root animated:YES];
    }
}

跳转到根视图控制器

- (void)buttonDidClicked:(UIButton *)sender
{
    [self.navigationController popToRootViewControllerAnimated:YES];
}

自定义返回按钮

- (void)viewDidLoad {
    [super viewDidLoad];
    // 定义一个返回按钮
    // left and right 都可以
    UIBarButtonItem *leftButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"我的返回" style:UIBarButtonItemStylePlain target:self action:@selector(leftButtonItemAction:)];

    UIBarButtonItem *leftButtonItem = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"1.png"] style:UIBarButtonItemStylePlain target:self action:@selector(leftButtonItemAction:)];

    UIBarButtonItem *leftButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemReply target:self action:@selector(leftButtonItemAction:)];

    // 让系统左(右)边按钮换掉
    self.navigationItem.leftBarButtonItem = leftButtonItem;

}
#pragma mark - 导航栏左边按钮的点击方法
- (void)leftButtonItemAction:(UIBarButtonItem *)sender
{
    [self.navigationController popViewControllerAnimated:YES];
}
版权声明:本文为outlan原创文章,未经博主允许不得转载。

IOS_UI_UINavigationController

  • 2015年05月24日 15:02
  • 426B
  • 下载

UI 第八天 UINavigationController

UINavigationController : 导航控制器,用来管理多个控制器 可以认为是管理控制器的控制器,主要管理有层级关系的控制器 UINavigationController继承于U...

导航控制器UINavigationController和选项卡栏控制器UI...

[cpp] view plaincopy "font-size:18px;">一、导航控制器   [cpp] view plainc...

UI - UINavigationController

UINavigationController导航视图控制器的使用介绍

UI-UINavigationController导航栏

//一般情况下,window的根视图控制器是容器控制器。 //系统中常用的两个容器控制器分别是UINavigationController和UITabBarController。 //创建一个...

UI课程 08 导航控制器 UINavigationController 、容器控制器

1.导航控制器 1)UINavigationController用来管理多个视图控制器 2)导航控制器是管理控制器的控制器,主要管理有层级关系的控制器 3)继承于UIViewController...
  • Kaiccy
  • Kaiccy
  • 2015年09月18日 20:27
  • 311

【UI初级--连载六】---------导航控制器(UINavigationController)

内容简介: 1、创建导航控制器  2、push、pop、root、index  3、设置导航栏 导航控制器UINavigationController是用来管理子控制器的切换的大管家 ...
  • Wing_n
  • Wing_n
  • 2015年09月18日 20:42
  • 188

UI13_数据解析之图片相关(UIActionSheet,UIImagePickerController, UINavigationController协议方法)

我们在进行图片解析的时候要用到的是第三方SDWebImage文件,引它里面的#import "UIImageView+WebCache.h".然后到设置里的选择Build Phases里选择Compi...

ui--UINavigationController

#define KWS(weakSelf) _weak _typeof(&*self)weakSelf=self //block 把强强引用转化成弱引用, 在代码中用block 反向传值可能会出现报警...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:UI_UINavigationController
举报原因:
原因补充:

(最多只允许输入30个字)