iOS - navigationController简单使用

NavigetionController(导航栏)

首先,层级关系: leftBarButtonItem、rightBarButtonItem、title都是加在UINavigationItem上的,UINavigationItem再加在NavigationBar上,NavigationBar对应唯一的NavigationController.

创建NavigetionCotroller

NavigetionCotroller的创建需要在AppDelegate.m文件中创建,并且需要设置根视图。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    //1.创建一个窗口(UIWindow)
    UIWindow * window = [[uiWindow alloc]initWithFrame:[UIScreen mainScreen].bounds];
    //2.创建一个显示的控制器,
    ViewController * vc = [ViewController new];
    UINavigationController * nav = [[UINavigationController alloc] initWithRootViewController:vc];
    //3.将控制器与Window关联
    window.rootViewController = controll;
    //4.将Window显示出来
    [window makeKeyAndVisible];
    self.window = window;
    return YES;
}

UINavigationBar导航栏样式

UINavigationBar是由UINavigationController管理,他的样式是由子控制器self.navigationltem来设置。

//例如:设置导航栏标题
self.navigationltem.titlt = @"标题";

返回按钮点击事件

1.弹出一个栈

[self.navigationController popViewControllerAnimated:YES];

2.弹出到根栈(根视图)

[self.navigationController popToRootViewControllerAnimated:YES];

3.弹出到指定栈(指定位置),只能向上弹出,不能跳转到子页面。

[self.navigationController popToViewController:[self.navigationController.viewControllers objectAtIndex:2] animated:YES];

对于navigationBar隐藏的一些设置

尤其是当使用继承自UIScrollView的控件时,有时候经常要针对于navigationBar做出一些设置。

//当tableView等滑动的时候是否隐藏navigationBar。
self.navigationController.hidesBarsOnSwipe = YES ;

//当视图接受点击的时候是否隐藏navigationBar。
self.navigationController.hidesBarsOnTap = YES ;

//当键盘出现的的时候是否隐藏navigationBar。
self.navigationController.hidesBarsWhenKeyboardAppears = YES ;

//当屏幕的方向改变的时候是否隐藏navigationBar。
self.navigationController.hidesBarsWhenVerticallyCompact = YES ;

//当视图被push(就是nav的push)完之后是否隐藏底层的bar。
self.navigationController.hidesBottomBarWhenPushed = YES ;

对于修改navigationController返回按钮颜色和文字

需要跳转界面上设置, 下个界面上显示

//本界面上设置, 下个界面上显示
// 方式一
self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"返回" style:UIBarButtonItemStylePlain target:nil action:nil];
// 方式二
UIBarButtonItem * backButtonItem = [[UIBarButtonItem alloc] init];
backButtonItem.title = @"返回";
self.navigationItem.backBarButtonItem = backButtonItem;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值