我开始重构我的一个项目以使代码更易于管理,并且Tab Bar Controller丢失了其标签代表什么的图标。没有这个,我有点迷失哪个标签是重新订购的目的。
当我使用情节提要参考时,如何让标签栏控制器再次显示图标?
请参阅我的附图。注意前三个标签是如何“空白”,但我还没有重构的其他标签仍显示图标和标题。
对于那些不熟悉故事板参考的人,我在这里遵循教程:http://code.tutsplus.com/tutorials/ios-9-staying-organized-with-storyboard-references--cms-24226
示例故事板示例,以正确显示图标
答案 0 :(得分:16)
答案 1 :(得分:7)
答案 2 :(得分:3)
更新 - 此方法似乎不再适用于Xcode 9。
以下是如何让标签正确显示:
答案 3 :(得分:1)
答案 4 :(得分:1)
如果在场景之前嵌入导航控制器,则可以像平常一样对其进行编辑。
然后选择您的故事板参考:
转到顶部,然后单击编辑器>嵌入>导航控制器
Tab bar controller with embedded navigation controller and linking storyboard reference
答案 5 :(得分:0)
XCode 11.1:以下方法获取所需的选项卡标题和图标以在运行时显示:
Title
和Image
属性这时,正确的标题应在运行时显示(但在情节提要编辑器中不会在编译时显示)。如果图标也在那里,那就太好了。如果不是,您可以尝试检查图像参考是否有效,并与选项卡栏项目位于同一模块中(即在同一框架中)。如果仍然没有出现,这是一个可行的变通方法:
UITabBarController
的新类。按如下所示覆盖viewWillLayoutSubviews
:
override func viewWillLayoutSubviews() {
super.viewWillLayoutSubviews()
// Set the tab bar image at runtime
if let exampleTab = tabBar.items?.first(where: { $0.title == "ExampleTitle" }) {
// To insert an image literal, type "Image" and select Image Literal
// from the autocomplete menu. An icon should appear.
// Double-click the icon and select the desired image from the grid.
exampleTab.image = Image Literal
}
}
最后,选项卡栏项现在应该在运行时正确显示。如果有人也知道如何在外部框架中的情节提要(在情节提要编辑器中)正确显示它,请告诉我。