添加navigationItem

本文详细介绍了如何通过代码方式在iOS导航栏中添加按钮,包括创建按钮、设置按钮样式、添加按钮到导航栏的过程,并提供了一个示例代码帮助开发者快速上手。

    navigationItem 是一个UInavigationItem对象,有3个主要的属性:leftBarButtonItem,title,rightBarButtonItem.其中第一个和第三个是导航栏的按钮。  对于导航我个人的习惯是以代码的方式添加而不用IB,因为我觉得以代码的方式要容易的多,这块需要注意的一个地方是先利用一个代码创建Button来写好一个完整的action,然后再添加导航栏的按钮。


代码如下:

//提供的默认的左上角按钮是自动写好的,但是我们看不到,就一句Pop
    
    UIButton* b2=[[UIButton alloc]initWithFrame:CGRectMake(60, 60, 40, 70)];
    [b2 addTarget:self action:@selector(buttonclicked:) forControlEvents:UIControlEventTouchUpInside];
    
    UIBarButtonItem* b1=[[UIBarButtonItem alloc]initWithTitle:@"before" style:UIBarButtonItemStyleBordered target:self action:@selector(buttonclicked:)];
    
    self.navigationItem.rightBarButtonItem=b1;
    


结果如下:


讲一下这段逻辑 private func updateNavigationBarButtons() { if !appContext.isLogin { //未登录 if showLocalDeviceOnly { if localDeviceCount == 0 { self.navigationItem.rightBarButtonItems = [addButtonmItem] } else { self.navigationItem.rightBarButtonItems = [addButtonmItem, negativeButtonItem] } moreSiteButton.isHidden = localDeviceCount == 0 tabBarCollectionView.isHidden = localDeviceCount == 0 } else { //如果未登录则左边按钮不显示 self.navigationItem.leftBarButtonItems = [mineButtonItem] //右边显示所有按钮 self.navigationItem.rightBarButtonItems = [addButtonmItem,negativeButtonItem] tabBarCollectionView.isHidden = true } scrollView.setContentOffset(CGPoint(x: 0, y: 62), animated: false) } else { //如果登录了则左边按钮显示 if showLocalDeviceOnly { moreSiteButton.isHidden = localDeviceCount == 0 tabBarCollectionView.isHidden = localDeviceCount == 0 if localDeviceCount == 0 { self.navigationItem.rightBarButtonItems = [addButtonmItem] } else { self.navigationItem.rightBarButtonItems = [addButtonmItem, negativeButtonItem, searchItem] } removeLeftBarButtonItem() addCustomNavigationLeftBarButtonItem(title: nil, image: TPImageLiteral("common_light_back_nor")) } else { moreSiteButton.isHidden = false tabBarCollectionView.isHidden = false if appContext.isVmsLogin { // 登录状态VMS if isDeviceListOld { removeLeftBarButtonItem() addCustomNavigationLeftBarButtonItem(title: nil, image: TPImageLiteral("common_light_back_nor")) self.navigationItem.rightBarButtonItems = [searchItem, changeDisplayTypeItem] } else { // tab新版VMS不能滚动 tabBarCollectionView.isScrollEnabled = true // addLeftBarButtonItem() if appContext.loginType == .cloud { self.navigationItem.rightBarButtonItems = [addButtonmItem, negativeButtonItem] } else { self.navigationItem.rightBarButtonItems = [] } } } else { // 登录状态个人版 reqVmsOrgListCode = appContext.requestVMSOrganizationList(withUsername: appContext.accountUsername, password: appContext.accountPassword ?? "") // removeLeftBarButtonItem() // if let hasVms = UserDefaults.standard.object(forKey: kHasCloudVMSOrganization) as? Bool, hasVms { // addLeftBarButtonItem() // } self.navigationItem.rightBarButtonItems = [addButtonmItem, negativeButtonItem] } } scrollView.setContentOffset(CGPoint(x: 0, y: 62), animated: false) } }
最新发布
11-28
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值