Swift App Xib - Second ViewController - 标签不显示 30 秒,但按钮等。我该如何解决?

Posted

技术标签:

【中文标题】Swift App Xib - Second ViewController - 标签不显示 30 秒,但按钮等。我该如何解决?【英文标题】:Swift App Xib - Second ViewController - Labels not showing for 30 seconds but Buttons etc are. How can I solve? 【发布时间】:2016-06-24 20:19:59 【问题描述】:

Swift App Xib - 第二个 ViewController - 标签未显示 30 秒,但按钮和其他控件立即显示。这可能是什么/我该如何解决?

Xcode 7.3.1 斯威夫特 2

这发生在设备和模拟器中

---> Video of Issue

我像这样从第一个 viewController 呈现:

 secondViewController.user = user

 self.presentViewController(secondViewController, animated: true, completion: nil)

第二个视图控制器

override func viewDidLoad() 
        super.viewDidLoad()
        print("ViewController did load")

        print("selected facility is: ", user?.selectedFacility)

        // Do any additional setup after loading the view.
    

//    required init(coder aDecoder: NSCoder) 
//        super.init(nibName: "ListViewController", bundle: NSBundle.mainBundle())
//    


    override func awakeFromNib() 
        print("awake from nib")
    
    override func viewWillAppear(animated: Bool) 
        print("viewWillAppear")
    

    override func viewDidAppear(animated: Bool) 
        print("viewDidAppear")

    

    override func viewDidDisappear(animated: Bool) 
        print("viewDidDisappear")
    

更新

如果我在 viewDidLoad 中设置文本,标签会与其他所有内容同时出现。

 override func viewDidLoad() 
        super.viewDidLoad()
        print("ListViewController did load")
        labelX.text = "heyVC"

添加插座本身并没有改变任何东西。它实际上是以编程方式设置修复它的文本。我认为这是 IB 中的一个错误。我会和苹果一起归档。

Bug 编号为 27029176

【问题讨论】:

没有看到任何代码的人如何帮助你? 视图/VC 文件中是否曾引用过标签? 否,标签从未被引用。我只是将控件拉到 Xib 上并测试第一个 viewController 中的当前是否正常工作。所以第二个 xib 有一个 FileOwner 视图控制器,但我还没有将控件连接到第二个视图控制器中的任何操作。添加代码以呈现和第二个 viewController 代码和第二个 viewController 中的代码 【参考方案1】:

看看你是否设置了一些自定义的标签字体,系统找不到字体文件(比如你删除了文件)。如果 Label 中没有设置系统字体,请尝试设置系统字体并重新运行确认。

【讨论】:

不使用任何自定义。我只是从对象库中将标签拉到视图上。它使用的是系统 17.0。【参考方案2】:

你在用 NSURL / NSMutableURLRequest / dataTaskWithRequest 做什么吗?

我在 30 秒延迟时遇到了完全相同的情况。当我注释掉从 URL(使用上述方法)获取数据的代码时,标签会立即显示。执行代码时,标签会延迟显示。我猜想获取以某种方式使事情异步。

不完全是一个解决方案,但可能是进一步研究的起点。如果您有新的想法或解决方案,请告诉我/我们。谢谢。 :-)

【讨论】:

我正在对第一个 ViewController 进行一些异步调用。也许不知何故,这正在流血。但在第二个 ViewController 中,我只是在展示它。这些控件还没有与之挂钩的操作。我将建立一些网点,我将发布结果。不过很奇怪。谢谢!

以上是关于Swift App Xib - Second ViewController - 标签不显示 30 秒,但按钮等。我该如何解决?的主要内容,如果未能解决你的问题,请参考以下文章

情节提要 xib 在 vi​​ewDidLoad 后“卡住”

Swift 怎么用xib 自定义View

Swift:xib 文件的继承

Swift将文本分配给xib文件中的标签

swift3:如何将 xib 呈现给 viewcontroller

Swift - 在 Xib 中动态设置 UITableView 高度