UINavigationController : UIViewController

本文深入探讨了iOS开发中UINavigationController的使用技巧,包括如何推动、弹出页面,以及如何自定义导航栏的外观与功能。通过实例演示,为开发者提供了一个全面的解决方案,帮助他们更高效地实现复杂的应用导航结构。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



  • 1.创建UINavigationController对象

    UINavigationController *navCV = [[UINavigationController alloc]initWithRootViewController:mainVC]; 

    通常和

    self.window.rootViewController = navCV;

    连用


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

    推出第二个页面

    eg:[self.navigationController pushViewController:secondVC animated:YES];


    3.- (UIViewController *)popViewControllerAnimated:(BOOL)animated; 

    返回上一视图

    eg:[self.navigationController popViewControllerAnimated:YES];


    4.- (NSArray *)popToViewController:(UIViewController *)viewController animated:(BOOL)animated; 

    返回指定视图

    eg:获得viewController的栈

    UIViewController *viewC = [self.navigationController.viewControllers objectAtIndex:0];

    [self.navigationController popToViewController:viewC animated:YES];


    5.- (NSArray *)popToRootViewControllerAnimated:(BOOL)animated; 

    返回根视图

    eg:[self.navigationController popToRootViewControllerAnimated:YES];




    UINavigationItem : NSObject <NSCoding>

    每个页面要显示在导航栏上的内容(标题,两边按钮信息)


    1.rightBarButtonItem

    创建导航栏右边按钮

    参数1 选择一个系统提供的图标信息

    eg:self.navigationItem.rightBarButtonItem = [[[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemRefresh target:self action:@selector(button:)]autorelease];


    2.leftBarButtonItem

    创建导航栏左边按钮

    eg:self.navigationItem.leftBarButtonItem = [[[UIBarButtonItem alloc]initWithImage:[UIImage imageNamed:@"iconfont-yinle.png"] style:UIBarButtonItemStylePlain target:self action:@selector(button:)]autorelease];


    3.hidesBackButton

    隐藏返回按钮

    eg:self.navigationItem.hidesBackButton = YES;


    4.titleView

    标题相关设置

    eg:self.navigationItem.titleView = [[[UISegmentedControl alloc]initWithItems:@[@"111",@"222"]]autorelease];



    UINavigationbar


    1.translucent

    是否透明

    eg:self.navigationController.navigationBar.translucent = YES;


    2.barTintColor

    bar的颜色eg:self.navigationController.navigationBar.barTintColor = [UIColor grayColor];


    3.setNavigationBarHidden

    隐藏bar

    e.g.:[self.navigationController setNavigationBarHidden:NO];


    4.automaticallyAdjustsScrollViewInsets

    取消掉scrollView的系统设置的UIEdgeInsets

    e.g.:elf.automaticallyAdjustsScrollViewInsets = YES;

    (当页面出现不可预知问题时可以尝试使用这个开关)


    5.setBackgroundImage

    设置bar背景图片

    eg:[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"2.png"] forBarMetrics:UIBarMetricsDefault];

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值