我在导航控制器上有一个与选项卡栏控制器连接的选项卡栏项目,我想删除swift中的标题
选项卡栏控制器〉导航控制器〉视图控制器
Tab Bar Item
Flow of the program
应用程序从带有五个选项卡的选项卡栏控制器开始,其中每个选项卡都工作正常,我的意思是隐藏选项卡栏项目下的标题,但图像中的选项卡只有未隐藏的问题,因此,如果用户注销且图像中的Viewcontroller显示,但如果用户登录选项卡栏项目上的标题,应用程序也在此选项卡上工作。正在显示,所以如果有办法,我可以通过编程隐藏标题
7条答案
按热度按时间7qhs6swi1#
正如其他人所建议的,你可以转到界面构建器并擦除栏项上的标题,或者你可以通过编程来完成。
只要您不设置选项卡链接到的UIViewController的title属性,这就足够了。如果您想为视图控制器设置标题,并避免它显示为栏项标题,请使用
navigationItem.title = "My Title"
而不是title = "My Title"
。mccptt672#
在
Xcode
上,转到你的故事板,然后点击导航控制器,在导航控制器底部点击tabBarItem
。在左边,转到属性检查器,删除barItem标题。您也可以通过编程方式执行此操作,即使您的情节提要将保持不同。
vbopmzt13#
标签页可以在
UITabBarItem
上配置一个标题,它被标签页中根视图控制器的标题覆盖。所以我想你是在BookingViewController中设置title = "Booking"
。据我所知,没有API可以显式隐藏选项卡标题,但您可以通过将它们移出屏幕来隐藏它们:
然后你的图标可能会显得有点高,你也可以通过设置
tabBarItem.imageInsets
来调整补偿。1qczuiv04#
我会创建一个
UITabBarItem
的子类,它限制title
的设置,如下所示:然后使用自定义类初始化视图控制器的
tabBarItem
:uubf1zoe5#
你可以试试这个。
在视图控制器中添加此标题
2cmtqfgy6#
我最近遇到了这个问题,并认为我会张贴我自己的解决方案,为子孙后代,因为我认为它相当轻的重量,有些人可能会喜欢它。
首先,无论如何创建选项卡项(我的是一个
UITabBarController
子类,我将子控制器传递到其中)-将选项卡项标题设置为空字符串。(Of当然,这种解决方案也是特定于OP场景的,在OP场景中,您有一个带有嵌入式导航控制器的
TabbarController
-这是相对常见的)。正如您可能知道的,设置UIViewController的标题将导致相关选项卡项选择标题。
为了在不设置选项卡项标题的情况下获得UIViewController标题--将新的UILabel添加到视图控制器的导航项Title View。
我最终在
UIViewController
上创建了一个扩展,如下所示:自定义您喜欢的字体和颜色。让标签自己调整大小,这样您就不必在此测量或设置其框架。
与直接设置字符串相比,我更喜欢使用本地化的字符串。
现在,在任何标签子控制器中,为了设置我的视图控制器标题而不拾取标签项标题--我只调用
addNavItemTitle(resourceString: "example.title")
好地方是在
viewDidLoad
你可能也注意到了我对
NSLocalizedString
的调用缺少了一个参数,这是因为我倾向于使用与资源字符串相同的注解字符串,所以我创建了一个全局函数来简化调用,而不需要重复字符串。就像这样:
42fyovps7#
将所选项目的标题颜色更改为选项卡栏背景颜色