首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

根据视图控制器的呈现方式隐藏left / rightBarButtonItem

根据视图控制器的呈现方式隐藏left/rightBarButtonItem是指在iOS开发中,根据不同的视图控制器的展示方式,隐藏导航栏中的左右按钮。

在iOS开发中,视图控制器(ViewController)是用于管理应用程序界面的核心组件之一。导航栏(NavigationBar)是一种常见的界面元素,用于在应用程序中提供导航和页面切换功能。导航栏通常包含左右两个按钮(leftBarButtonItem和rightBarButtonItem),用于执行特定的操作或导航到其他页面。

根据视图控制器的呈现方式隐藏left/rightBarButtonItem可以通过以下步骤实现:

  1. 首先,获取当前视图控制器的导航栏对象。可以通过self.navigationController来获取。
  2. 然后,根据视图控制器的呈现方式判断是否需要隐藏左右按钮。常见的视图控制器呈现方式包括模态弹出(present)和导航栈推入(push)两种。
  • 如果是模态弹出方式呈现的视图控制器,可以通过设置导航栏的navigationItem.leftBarButtonItemnavigationItem.rightBarButtonItemnil来隐藏左右按钮。
  • 如果是导航栈推入方式呈现的视图控制器,可以通过设置导航栏的navigationController?.navigationBar.topItem?.leftBarButtonItemnavigationController?.navigationBar.topItem?.rightBarButtonItemnil来隐藏左右按钮。

下面是一个示例代码:

代码语言:swift
复制
// 判断当前视图控制器的呈现方式
if presentingViewController != nil {
    // 模态弹出方式呈现的视图控制器
    navigationItem.leftBarButtonItem = nil
    navigationItem.rightBarButtonItem = nil
} else if navigationController?.topViewController == self {
    // 导航栈推入方式呈现的视图控制器
    navigationController?.navigationBar.topItem?.leftBarButtonItem = nil
    navigationController?.navigationBar.topItem?.rightBarButtonItem = nil
}

这样,根据视图控制器的呈现方式,可以动态隐藏导航栏中的左右按钮。

在腾讯云的产品中,与iOS开发相关的云服务包括移动开发、云原生、音视频等。以下是一些推荐的腾讯云相关产品和产品介绍链接地址:

  1. 移动开发:腾讯云移动开发套件(https://cloud.tencent.com/product/mks
    • 优势:提供全面的移动开发解决方案,包括移动应用开发、移动后端云服务、移动测试等。
    • 应用场景:适用于各类移动应用的开发和运维。
  2. 云原生:腾讯云容器服务 TKE(https://cloud.tencent.com/product/tke
    • 优势:提供高度可扩展的容器化解决方案,支持快速部署和管理容器化应用。
    • 应用场景:适用于云原生应用的开发、部署和运维。
  3. 音视频:腾讯云实时音视频 TRTC(https://cloud.tencent.com/product/trtc
    • 优势:提供高品质、低延迟的实时音视频通信能力,支持多种场景的音视频应用开发。
    • 应用场景:适用于在线教育、在线会议、直播等实时音视频应用的开发和运营。

以上是根据视图控制器的呈现方式隐藏left/rightBarButtonItem的完善且全面的答案,希望能对您有所帮助。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

控制器视图传值方式

控制器视图传值方式 (1)Viewdata C:Viewdata["key"]="viewdata"//控制器中赋值 V:Viewdata["key"]//视图中取值 (2)Viewbag...C:Viewbag.key="viewbag"//控制器中赋值 V:viewbag.key//视图中取值 (3)TempData        TempData实际上保存在Session中,控制器每次执行请求时都会从...C:Tempdata["key"]="tempdata"//控制器中赋值 V:Tempdata["key"]//视图中取值 (4)Model :必须要有一个对象实体类 ViewData.Model=...查询出对象 V:通过强类型页面 形式为:@model 从控制器中传来具体类型(单个对象或者集合) viewdata与viewbag区别: (1)对于普通类型 传值方式一样 (2)对于强类型...只能在一个Action方法中进行设置,在相关视图页面读取,只对当前视图有效。

1.2K20
  • Swift-MVVM 简单演练(一)

    有一些系统样式本身处理不好,比如侧滑返回时候,系统会出现渐溶效果,这种用户体验不太好 需要解决push出一个控制器后,底部TabBar隐藏/显示问题 Push 出控制器后,底部 TabBar...隐藏/显示问题 在导航控制器基类里面重写一下push方法 判断如果不是根控制器,那么push时候就隐藏BottomBar 注意调用super.pushViewController要在重写方法之后...在基类控制器setupUI(设置界面)方法里面,我们直接创建了tableView,那么我们如果有一个标记,能根据这个标记来选择是创建普通视图,还是创建访客视图。就可以很好解决此类问题了。...总结 使用代理传递消息是为了在控制器视图之间解耦,让视图能够被多个控制器复用,如TableView 但是,如果视图仅仅是为了封装代码,而从控制器中剥离出来,并且能够确认该视图不会被其它控制器引用,...则可以直接通过addTarget方式为该视图按钮添加监听方法 这样做代价是耦合度高,控制器视图绑定在一起,但是省略部分冗余代码 ---- 调整未登录时导航按钮 如果单纯在setupVistorView

    10.3K51

    iOS:分割控制器UISplitViewcontroller

    分割控制器UISplitViewController 功能:它也是ipad一个新特性,在屏幕上可以同时显示两个控制器,左边一个,右边一个;左边为主控制器,右边为详细控制器,主控制器可以根据需要显示或隐藏...它对于iPhone虽然可以使用,但是不具备同时显示特点,在iPhone样式,就是导航控制器切换模式。...: 在故事板布局样式截图为: 下面我们就通过纯代码方式创建如下: 1、创建两个控制器类,一个为主控制器类MasterViewController,一个为详细控制器类DetailViewController...pragma mark - //主控制器将要隐藏时触发方法 -(void)splitViewController:(UISplitViewController...Master导航栏和按钮,并设置表格视图数据源和代理 - (void)viewDidLoad { [super viewDidLoad]; //创建UITableView

    1.9K30

    IOS开发之TabBarItem&NavigationBarItem

    下面的视图控制器之间关系是如何用storyboard拖出来,在之前博客中有所提及,在这小编就不赘述了。   ViewController之间关系大致入下图: ?   ...presentViewController:myTabBarController animated:YES completion:^{ 15 }]; 16 } 17 }     2.如何给我们新建视图控制器关联我们新建视图控制器类呢...其实在我们storyboard中还是蛮简单,在storyboard选择我们要关联视图控制器,在 Class中选中我们新建视图控制器类即可。...我们可以通过storyboard通过拖拽方式来配置我们NavigationBar 也可以通过手写代码方式进行配置:     (1)用storyboard来为我们Navigation Bar添加按钮...Tab Bar是存在,或减少我们可视空间,那么我们应如何隐藏掉呢?

    1.4K80

    iOS调整导航条BarButtonItem与titleView 间距

    前言 例子:调整BarButtonItem按钮和titleView间距 1、原理:titleview起点位置和尺寸依赖于leftBarButtonItem和rightBarButtonItem位置...2、设置titleview之前,先初始化leftBarButtonItem和rightBarButtonItem位置,然后根据leftBarButtonItem和rightBarButtonItem位置来使...常见问题 1、 BarButtonItem 隐藏失效解决方案:使用initWithCustomView进行实例化BarButtonItem 2、 iOS13.5.1 版本无法点击导航条右侧按钮:CustomView...位置,然后根据leftBarButtonItem和rightBarButtonItem位置来使titleview居中。...从其他VC回到当前控制器时候,发现右边self.navigationItem.rightBarButtonItem背景颜色被冲淡了 解决方法:UIImageRenderingModeAlwaysOriginal

    2.1K20

    iOS14开发-UIViewController

    响应设备方向变化。 有一些特殊视图控制器(导航控制器、标签栏控制器)可以更加方便和规范地管理 UIView。 创建 storyboard 初始化箭头指向 UIViewController。...顺向传值只需要在目标控制器中声明需要接收参数,然后在源控制器中进行传值即可。 storyboard 方式。 代码方式。...逆向传值 逆向传值即按照 UIViewController 跳转顺序反向进行传值,比如控制器A跳转到控制器B,控制器B在返回控制器A时进行传值,这种方式就是逆向传值。...其他 UITableViewController:表视图控制器,集成了 UITableView 视图控制器。...UICollectionViewController:集合视图控制器,集成了 UICollectionView 视图控制器

    2.4K20

    【iOS开发-22】navigationBar导航栏,navigationItem建立:获取导航栏中基本文本和button以及各种跳跃

    须要创建两个视图控制器(ViewController根视图控制器,SecondViewController子视图控制器),然后放在导航控制器栈中。...隐藏导航条,由此点击进入其它视图时导航条也会被隐藏。...,且能够加入随意视图,以右边为例 //加入多个事实上就是rightBarButtonItems属性,注意另一个rightBarButtonItem,前者是赋予一个UIBarButtonItem对象数组...,所谓跳转,事实上就是往导航控制器栈中PUSH或者POP一个视图控制器,这样在最上面的视图控制器就变了,这样视图也跟着变了,由于仅仅显示在栈顶得那个视图控制器视图 //所以(1)控制所谓跳转...事实上是导航控制器在控制,在里面的元素都能够通过navigationController属性获取到它们所在导航控制器 //所以(2)获取到导航控制器之后,使用Push那个方法,往栈里面放一个视图控制器

    2.3K10

    【IOS开发基础系列】Navigation页面导航专题

    ,即不是使用push方式加载子VC,而是通过AddChildViewController方式添加场景,则父级导航条会覆盖在子级导航条上面,所以需要在载入时把父级导航条做隐藏处理: 1.2 navigationItem...),步骤如下:     1.在视图控制器头文件中实现UINavigationControllerDelegate,例如: @interface PicturePreviewViewController...navigationController willShowViewController: (UIViewController*) viewController animated: (BOOL)animated{     //如果进入是当前视图控制器...[self.navigationItem setHidesBackButton: YES]; 2.5.5 设置导航栏标题字体颜色和大小     方法一:(自定义视图方法,一般人也会采用这样方式)...2.5.8 Tabbar显示与隐藏 Tabbar隐藏函数,其实只在Nav Push之前调用时起作用 //隐藏Tabbar [viewController setHidesBottomBarWhenPushed

    41420

    Cocoa编程中视图控制器视图类详解

    视窗UIWindow虽然也是UIView,但不能用处理普通UIView方式来设置; 2....)和栏标题(title)、用于显示标题视图(titleView),以及用于从当前视图向后导航Back按钮(backBarButtonItem)和隐藏后退按钮(hidesBackButton)。...注意:对于导航栏定制,对定制实际标题最简单方式时使用子视图控制器而不是导航项title属性: C代码   self.title = @"Hello";   self.title = [[[NSBundle...:将它隐藏才重新得到控制权。...选项卡类方便之处就是不需要象导航栏那样以栈方式推入和弹出视图操作,而是组建一系列控制器(它们各自可以是UIViewController、UINavigationController、UITableViewController

    5K50

    iOS右滑返回实现【修订】

    2.1 UINavigationController (QMUI)进行控制右滑返回 QMUI使用分类UINavigationController (QMUI)方式进行控制右滑返回,具体核心代码如下 重写...,发生当前不可以手势返回,可先检查为什么当前状态,系统不允许你手势返回,例如是否隐藏了 navigationBar,或者隐藏了系统返回按钮?...比如push时候,自定义了leftBarButtonItem按钮了,你可以采用分类方式往UIViewController 添加forceEnableInteractivePopGestureRecognizer...kunnan_forceEnableInteractivePopGestureRecognizer { return YES; } 在这里插入图片描述 III、自定义导航条rightBarButtonItem...自定义导航条rightBarButtonItem,采用initWithCustomView:rightBtn设置rightBtn.frame,让文字更大,更容易点击 https://kunnan.blog.csdn.net

    1.7K20

    iOS多控制器之UINavigationController&UITableBarController1. 多控制器2. UINavigationController3. UITableBarCont

    为UINavigationController 根据具体情况,通过push方法添加对应个数控制器 2.2 代码创建 初始化UINavigationController - (BOOL)application...此属性是UINavigationController,它可以一次添加多个自控制器; 4,最正常用法: pushViewController,入栈方式添加自控制器。...通过属性viewControllers进行设置 nav.viewControllers = @[mainController]; // 通过pushViewController入栈方式添加自控制器...// 右上角视图 @property(nonatomic,retain) UIBarButtonItem *rightBarButtonItem; 2.6 UINavigationController...:c1]; tb.viewControllers=@[c1,c2,c3,c4]; 注意:展示顺序和添加顺序一致,和导航控制器中不同,展现在眼前是导航控制器视图控制器也就是第一个添加到导航控制器视图

    1.3K40

    UI篇-UINavigationController之易忘补充

    :action:设置视图触发事件 tintColor  设置tintColor可以影响添加在导航条上系统样式按钮颜色  title: 标题  titleView :标题视图  leftBarButtonItem...也是以栈方式管理一组UINavigationItem。...每个视图控制器都有一个navigationItem属性,navigationItem中设置做按钮、右按钮、标题等,会随着控制器显示,也显示到navigationBar上 我们来看一下这些名词是什么意思...navigationItem包含了bar视图全部元素(如title,tileview,backBarButtonItem等),受当前viewcontroller管理,即bar形成整个nv导航视图,然后每个...,也可以根据需求进行自定义,`每个UIBarButtonItem可以绑定一个事件`,不常使用。

    2.1K20

    3dslicer使用教程_c4d视图设置

    一、3D Viewer 视图窗口控制 视角控制 左边一块可以控制当前3Dviewer窗口中显示图像视角,共有8个方向视角,左 L(Left)、右 R(Right)、前 A(Anterior)、后...置中 将3D视图放于场景中央位置,同时使图像被包含入3Dcube中 放大 缩小 切换投影方式 将会在直角投影和透视投影两种投影方式之间进行切换,并进行相应绘制,呈现不同3D视图 视图旋转 3D视图会以一定速率绕上下轴进行旋转...立体视觉选项 可以设置立体视觉不同选项,将3D视图显示为当前视觉模式下状态。 额外选项 选择设置深度剥离(Depth Peeling)隐藏ROI显示不同深度图像。...隐藏/显示重定义格式部件 通过该部件可以在3D视图中手动拖动切面显示不同切面。...同前景层类似,可以通过拖动控制器面板上不透明度工具条(眼睛右边下拉菜单)或者设置控制器面板上数值设定框或者直接在视图上Ctrl键+鼠标左键左右拖动来改变前景不透明度。

    3.3K20

    iOS小技能:右滑返回

    2.1 问题分析 QMUI使用分类UINavigationController (QMUI) 方式进行控制右滑返回,具体核心代码如下 重写viewDidLoad设置右滑返回手势代理为自身...,发生当前不可以手势返回,可先检查为什么当前状态,系统不允许你手势返回,例如是否隐藏了 navigationBar,或者隐藏了系统返回按钮?...比如push时候,自定义了leftBarButtonItem按钮了,你可以采用分类方式往UIViewController 添加forceEnableInteractivePopGestureRecognizer...fileURLWithPath:[[NSBundle mainBundle] bundlePath]]]; } return _webView; } 3.2 自定义导航条rightBarButtonItem...自定义导航条rightBarButtonItem,采用initWithCustomView:rightBtn设置rightBtn.frame,让文字更大,更容易点击 https://kunnan.blog.csdn.net

    2.2K30

    iOSMVC框架之控制层构建(上)

    而且这种设计还有如下更多考量: 视图界面千变万化,会根据用户体验不停升级和优化,甚至同一个功能前后两个版本都有完全不同差异,或者某些视图界面会分散到其他视图界面中去,又或原来分散视图界面又聚合到某个新视图界面中来...而且这两个平台上都提供了控制器构建,视图呈现以及到控制器销毁流程方法。...前面大体介绍了控制层中控制器实现以及控制器生命周期,同时也介绍了功能和控制器之间对应关系,控制器视图和业务模型之间联系纽带,因此控制器必须要在生命周期内负责视图构建、管理视图呈现、处理用户操作...控制器默认实现将会找到关联Storyboard或者XIB中视图布局描述信息, 如果找到了则根据布局描述来构建要呈现视图,如果没有找到则会构建出一个默认视图。...,那也可以用分类方式来实现。

    1.5K20

    iOS 9人机界面指南(四):UI元素(上) - 腾讯ISUX

    活动视图控制器: 显示了让用户可以针对当前内容执行操作一系列可配置服务 根据所处场景不同,可能出现在操作列表或浮出层中 使用活动视图控制器来为用户提供一系列针对当前内容服务。...4.2.4 容器视图控制器 容器视图控制器采用自定义方式来管理和呈现视图控制器或一系列子视图。...用容器视图控制器呈现内容,使用户可以通过控制器来以自定义方式进行导航。 先问问你自己是不是必须用到容器视图控制器。用户会更习惯诸如对分视图、或者是标签栏视图这类他们所熟知东西。...如果需要的话,设计一种自定义方式让用户可以以非线性方式来获取内容。页面视图控制器让用户从一页移动到前一页或者后一页,而并不支持用户在并不相邻页面间快速切换。...你可以指定特殊展示环境下对分视图版式,并且通过请求对分视图控制器聚焦于这个版式,以此改变窗格排列方式

    10.1K51
    领券