Objective--C 导航视图控制器




导航视图器相当于视图器的一个总管理者,在根视图创建后,任何一个视图控制器都能使用


一:创建

// 创建视图控制器

RootViewController *rootVC = [[RootViewController allocinit];

// 创建导航视图控制器

UINavigationController *naVC = [[UINavigationController allocinitWithRootViewController:rootVC];



二:修改导航视图器

// 修改导航视图控制器的时候一般从外观和内容上进行修改


1 . 修改外观

    // 修改导航视图控制器的半透明效果,默认是YES

    self.navigationController.navigationBar.translucent = NO;

    // 修改背景颜色


    self.navigationController.navigationBar.barTintColor = [UIColor yellowColor];


2.修改内容

// (1).标题

    self.title = @"天猫首页";

   // 改变标题

      self.navigationItem.title = @"豆瓣电影";

    // 可以把label放到titleView,能改变label的内容,比如字体大小等

      UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 100, 100)];

    label.text = @"淘宝";

    label.textAlignment = NSTextAlignmentCenter;

    self.navigationItem.titleView = label;

    label.font = [UIFont systemFontOfSize:25];


    [label release];



// 不设置title(类似于QQ聊天界面的消息通话界面)

        UISegmentedControl *seg = [[UISegmentedControl allocinitWithItems:@[@"消息",@"通话"]];

        self.navigationItem.titleView = seg;


        [seg release];




// (2)创建按钮

// 创建左边的按钮

    self.navigationItem.leftBarButtonItem = [[UIBarButtonItem allocinitWithBarButtonSystemItem:UIBarButtonSystemItemRefresh target:self action:@selector(barAction:)];

   

    // 第二种方式(创建右边按钮,图片)

//    self.navigationItem.rightBarButtonItem = [[[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"money.png"] style:UIBarButtonItemStylePlain target:self action:@selector(barAction:)] autorelease];

    

    // 第三种方式(创建右边确认按钮)


//    self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"确认" style:UIBarButtonItemStylePlain target:self action:@selector(barAction:)];



// 第四种,使用自定义视图(常用)

    UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];

    [button setImage:[UIImage imageNamed:@"money.png"forState:UIControlStateNormal];

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

    [button addTarget:self action:@selector(barAction:) forControlEvents:UIControlEventTouchUpInside];

    self.navigationItem.rightBarButtonItem = [[UIBarButtonItem allocinitWithCustomView:button];

    

    

    UIButton *pushBuootn = [UIButton buttonWithType:UIButtonTypeSystem];

    pushBuootn.frame = CGRectMake(100, 100, 150, 50);

    pushBuootn.layer.borderWidth = 1;

    pushBuootn.layer.cornerRadius = 5;

    [pushBuootn setTitle:@"下一页" forState:UIControlStateNormal];

    [self.view addSubview:pushBuootn];


    [pushBuootn addTarget:self action:@selector(click:) forControlEvents:UIControlEventTouchUpInside];



//跳转到下一页的Button点击事件

- (void)click:(UIButton *)button{


    // 方式一:模态跳转

    // 创建跳转到得页面

//    SecondViewController *secVC = [[SecondViewController alloc] init];

//    [secVC setModalTransitionStyle:0];

//    [self presentViewController:secVC animated:YES completion:^{

//        

//    }];

    

    // 方式二:通过导航视图控制器进行跳转操作

    // 1.创建下一页的目标对象

    SecondViewController *secVC = [[SecondViewController allocinit];

    

    // 2.跳转

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

    

    // 3.内存管理

    [secVC release];



}

    // 返回首页

   [self.navigationController popToRootViewControllerAnimated:YES];


    // 返回上一页

    [self.navigationController popViewControllerAnimated:YES];

   

    



















导航视图器相当于视图器的一个总管理者,在根视图创建后,任何一个视图控制器都能使用


一:创建

// 创建视图控制器

RootViewController *rootVC = [[RootViewController allocinit];

// 创建导航视图控制器

UINavigationController *naVC = [[UINavigationController allocinitWithRootViewController:rootVC];



二:修改导航视图器

// 修改导航视图控制器的时候一般从外观和内容上进行修改


1 . 修改外观

    // 修改导航视图控制器的半透明效果,默认是YES

    self.navigationController.navigationBar.translucent = NO;

    // 修改背景颜色


    self.navigationController.navigationBar.barTintColor = [UIColor yellowColor];


2.修改内容

// (1).标题

    self.title = @"天猫首页";

   // 改变标题

      self.navigationItem.title = @"豆瓣电影";

    // 可以把label放到titleView,能改变label的内容,比如字体大小等

      UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 100, 100)];

    label.text = @"淘宝";

    label.textAlignment = NSTextAlignmentCenter;

    self.navigationItem.titleView = label;

    label.font = [UIFont systemFontOfSize:25];


    [label release];



// 不设置title(类似于QQ聊天界面的消息通话界面)

        UISegmentedControl *seg = [[UISegmentedControl allocinitWithItems:@[@"消息",@"通话"]];

        self.navigationItem.titleView = seg;


        [seg release];




// (2)创建按钮

// 创建左边的按钮

    self.navigationItem.leftBarButtonItem = [[UIBarButtonItem allocinitWithBarButtonSystemItem:UIBarButtonSystemItemRefresh target:self action:@selector(barAction:)];

   

    // 第二种方式(创建右边按钮,图片)

//    self.navigationItem.rightBarButtonItem = [[[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"money.png"] style:UIBarButtonItemStylePlain target:self action:@selector(barAction:)] autorelease];

    

    // 第三种方式(创建右边确认按钮)


//    self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"确认" style:UIBarButtonItemStylePlain target:self action:@selector(barAction:)];



// 第四种,使用自定义视图(常用)

    UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];

    [button setImage:[UIImage imageNamed:@"money.png"forState:UIControlStateNormal];

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

    [button addTarget:self action:@selector(barAction:) forControlEvents:UIControlEventTouchUpInside];

    self.navigationItem.rightBarButtonItem = [[UIBarButtonItem allocinitWithCustomView:button];

    

    

    UIButton *pushBuootn = [UIButton buttonWithType:UIButtonTypeSystem];

    pushBuootn.frame = CGRectMake(100, 100, 150, 50);

    pushBuootn.layer.borderWidth = 1;

    pushBuootn.layer.cornerRadius = 5;

    [pushBuootn setTitle:@"下一页" forState:UIControlStateNormal];

    [self.view addSubview:pushBuootn];


    [pushBuootn addTarget:self action:@selector(click:) forControlEvents:UIControlEventTouchUpInside];



//跳转到下一页的Button点击事件

- (void)click:(UIButton *)button{


    // 方式一:模态跳转

    // 创建跳转到得页面

//    SecondViewController *secVC = [[SecondViewController alloc] init];

//    [secVC setModalTransitionStyle:0];

//    [self presentViewController:secVC animated:YES completion:^{

//        

//    }];

    

    // 方式二:通过导航视图控制器进行跳转操作

    // 1.创建下一页的目标对象

    SecondViewController *secVC = [[SecondViewController allocinit];

    

    // 2.跳转

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

    

    // 3.内存管理

    [secVC release];



}

    // 返回首页

   [self.navigationController popToRootViewControllerAnimated:YES];


    // 返回上一页

    [self.navigationController popViewControllerAnimated:YES];

   

    


















你可能感兴趣的:(Objective-C,OC)