【发布时间】:2021-12-12 07:33:56
【问题描述】:
我正在使用 XCode 13.0、Swift 5.5 和 Storyboard。这是一款适用于 iOS 15 的 iPhone 移动应用。
我总共有 7 个标签,所有标签都有图标。我的应用程序的标签栏中有 4 个标签和一个“更多”标签。 用户单击“更多”选项卡后会显示 3 个附加选项卡。我希望禁用这些附加选项卡中的前 2 个。它们需要是灰色的,当用户点击这两个中的任何一个时,我想应用什么都不做(不显示任何页面,不导航到任何地方)。我使用的是 Apple 定义的原始 UITabBarController 和 moreNavigationController,我没有对它们中的任何一个进行子类化。 在我的故事板上,我向这 2 个禁用的选项卡添加了 2 个 UIViewController,但我以这种方式将它们设置为禁用:
这根本不起作用。当用户单击 2 个禁用的选项卡时,它们会显示 2 个空的 ViewController。我希望他们不会显示任何内容。
我还尝试从我的 UITabBarController 第一次打开的页面访问 moreNavigationController 的选项卡。我尝试以编程方式禁用这两个选项卡。但是我没有设法访问这两个选项卡,我只能访问显示在选项卡栏中的主选项卡(我不需要访问这些)。如何禁用单击更多选项卡后显示的选项卡并将其涂成灰色?
let moreControllerItems = tabBarController?.moreNavigationController.toolbarItems
if let tabArray = moreControllerItems {
let tabBarItem1 = tabArray[0]
let tabBarItem2 = tabArray[1]
tabBarItem1.isEnabled = false
tabBarItem2.isEnabled = false
}`
此代码不起作用,moreControllerItems 变量为零。 tabBarController 变量不是 nil,我可以从这里访问我的 UITabBarController,但它对我没有多大帮助。 我用谷歌搜索了这个问题很多不同的方法,但我找不到解决方案。任何帮助,将不胜感激。我真的需要解决这个问题,如果您知道如何解决这个问题,请写评论。谢谢!
【问题讨论】:
标签: ios swift uitabbarcontroller