标签栏图标和标题未显示在 Storyboard References 中

Tab bar icon and title not showing with Storyboard References

我有以下故事板,其中包含故事板参考:

问题是当我 运行 应用程序时,它不显示图标或标题:

这些是项目设置:

我错过了什么?

我在情节提要中做了以下内容,并为每个 UINavigationController 制作了 class 并在每个 UINavigationController class

中编写了以下代码
override func viewDidLoad() {
        super.viewDidLoad()
        let someController = StoryboardManager.surveyStoryboard.instantiateViewControllerWithIdentifier("SomeController") as! SomeController
        viewControllers = [someController]
        // Do any additional setup after loading the view.
    }

以下是使选项卡正确显示的方法:

  1. 将第一个要嵌入到tab中的UIViewController放在 与 UITabViewController 相同的故事板
  2. Ctrl + 从标签栏控制器拖动到内容视图 控制器像往常一样建立连接。这会 自动将 UITabBarItem 添加到内容视图的底部 控制器。
  3. Select 内容视图控制器。
  4. 单击“编辑器”菜单并选择“重构到故事板”...

UITabBarController 选项卡现在将指向新的故事板引用... ...并且内容视图控制器保留来自选项卡栏关系的 UITabBarItem。它现在将正常出现在应用程序中。

您可以修改 image/title 您所引用的情节提要的初始视图控制器中的选项卡栏项目。您只需要向初始视图控制器添加一个 'tab bar item' 并相应地更改其属性 (title/image)。

  1. 引用故事板中根视图控制器的大纲视图

  1. 视图控制器中修改的标签栏项目

注意:更改不会反映在主故事板的标签栏上;您只能在引用的情节提要和运行时看到它。

问题是在目标视图控制器中,视图层次结构中没有 UITabBarItem。 TabBarItem 与故事板参考相关,但应该与 View Controller 相关。

看起来像 Xcode 中的 "bug"...

要解决此问题,您可以执行以下操作:

  • 只需创建从 UITabBarController 到 Storyboard 引用的转场。
  • 您可以在情节提要参考中配置选项卡栏项目,除了在情节提要的选项卡栏中显示选项卡外,它们不会做更多的事情,这对于开发目的非常有用。

如果您现在 运行 该应用程序,您确实会注意到选项卡丢失了。 要使选项卡也显示在 运行ning 应用程序中,请执行以下操作:

  • 转到viewcontroller故事板引用
  • 通过将选项卡栏项目从 Object 库拖到视图控制器中,将其添加到此视图控制器中
  • 您现在将在视图控制器中看到一个只有一个选项卡的选项卡栏
  • 配置选项卡栏项目以显示正确的标题和图标

现在 运行 应用程序,您现在将看到您的选项卡。

在为这个问题苦苦挣扎了几天之后,我找到了这个解决方案。 双击故事板 link,这将打开引用的故事板。在场景导航器中,您可以使用自定义标题和图标编辑栏项目。适用于 xCode 9.

Storyboard

Scene Navigator

我尝试添加另一个选项卡栏,然后添加选项卡栏项目,为其选择和图像,但以上似乎都不适用于我的情况.. 是这样的:

然后我将它与 VC 进行了比较,后者与 TabBar 图标一起正常工作..

后来我发现我的导航项和标签栏项不在一起:

现在可以使用了:):)

我遇到了完全相同的问题,但以上答案均不适用于我的情况。我通过在故事板参考中的 image 栏项目部分设置我的标签栏图像来解决,如附图所示:


我用不同的方式做到了。我的第四个标签没有显示。我只是以编程方式将图像放在它的位置。您需要相应地设置它的X,Y坐标。

    let imageName = "video"
    let image = UIImage(named: imageName)
    let imageView = UIImageView(image: image!)
    imageView.frame = CGRect(x: view.frame.width - 80, y:  view.frame.height-70, width: 50, height: 50)
    view.addSubview(imageView)