gpt4 book ai didi

ios - presentViewController 不显示呈现 View Controller 上的所有元素

转载 作者:行者123 更新时间:2023-11-29 01:12:30 30 4
gpt4 key购买 nike

我在尝试使用以下代码在 Storyboard 中呈现新的 View Controller 时遇到问题:

    let viewController = self.storyboard?.instantiateViewControllerWithIdentifier("ViewControllerIdentifier")
self.presentViewController(viewController!, animated: true, completion: nil)

View Controller 确实出现了,但出于某种原因只显示了两个按钮,没有其他元素。

到目前为止我尝试了什么:

  • 将 View Controller 加载为初始 View Controller 以查看是否问题依然存在。不,所有元素都在正确的位置。
  • 将动画从 true 切换为 false。 问题依然存在
  • 打印隐藏属性以及 x 和 y 位置。 隐藏是错误的,位置是它们应该是的
  • 清理并重建项目,因为这似乎可以解决 99% 的问题根据我的经验,所有奇怪的错误。 遗憾的是这没有帮助时间
  • 首先将隐藏设置为 true,然后设置为 false。 重置属性没有帮助。
  • 使用 CFRunLoopWakeUp(CFRunLoopGetCurrent())没有帮助要么。

我附上了一张简单的 View 图。 view controller

如前所述,当我将 View Controller 作为初始 View Controller 加载时,它显示得非常好,但使用上面的代码时只显示按钮。ViewDidAppear 也会被调用。

我正在使用 Xcode 7.2.1 版

编辑:根据评论的要求,这是我要显示的 View Controller 的代码:

import UIKit

class myViewController : UIViewController {

@IBOutlet weak var myImage: UIImageView!

override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}

override func viewDidAppear(animated: Bool) {
super.viewDidAppear(animated)
}

override func supportedInterfaceOrientations() -> UIInterfaceOrientationMask {
return UIInterfaceOrientationMask.Portrait
}


}

编辑:我找到了解决这个问题的方法:通过在以下 block 中创建转换。

dispatch_async(dispatch_get_main_queue(),^{

});

看来我的问题是,触发所述转换的行没有在 UI 线程上执行。我仍然不知道为什么这会导致上述行为,但至少有一个解决方案。

最佳答案

根据我的经验,像这样的问题可能是由于您的自动布局约束被搞砸了或没有完全满足您的需要(尽管它在默认情况下正确显示的事实可能表明我没有走上正确的道路)。

Storyboard编辑器中是否有任何警告表明约束不正确?我还建议使用 View 调试功能来帮助排除故障。当您的应用程序运行时,单击圆圈图标以显示您的 View 层次结构,然后尝试查找您认为应该存在的 View 。它还允许您查看约束,因此这也可能有助于解决上面的第 1 点。

enter image description here

关于ios - presentViewController 不显示呈现 View Controller 上的所有元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35577763/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com