呈现的 ViewController 将被加载但不出现
Posted
技术标签:
【中文标题】呈现的 ViewController 将被加载但不出现【英文标题】:Presenting ViewController will be loaded but does not appear 【发布时间】:2017-10-10 08:16:39 【问题描述】:呈现的 ViewController 似乎已加载,但屏幕实际上并未重新加载。触摸屏幕后,可以看到 ViewController。
这是我的instantiateViewController
代码:
let v = self.storyboard?.instantiateViewController(withIdentifier: "BrowsingDaragaViewController") as! BrowsingDaragaViewController
self.present(v, animated: true, completion: nil)
BrowsingDaragaViewController
中没有附加代码。 viewDidAppear()
函数在我触摸屏幕之前不会被调用。
我将 Xcode 9 与 Swift4 一起使用。
编辑:
演示代码在tableview(didSelectedRow at indexPath)
中,但是当我使用按钮操作时,它可以正常工作
【问题讨论】:
您能在故事板中向我们展示您的屏幕吗? 我用新的视图控制器替换它,没有更多元素但仍然是同样的问题 在当前视图中点击一个按钮并在点击事件中放入 BrowsingDaragaViewController 推送代码 在推动它工作正常 你确定在主线程吗? 【参考方案1】:如果您使用过任何手势识别器,请将其移除并检查是否导致问题?
如果您没有使用手势识别器,请在didSelectRowAtIndexPath
中使用以下代码
// Your stuff
DispatchQueue.main.async(execute:
self.present(yourViewControllerHere, animated: true, completion: nil)
)
// Your stuff
或
仍然面临问题,然后确保您的 tableView 在您的 XIB 或 StoryBoard 中设置了单一选择。
【讨论】:
更多详情见此链接***.com/a/30787046/5212377以上是关于呈现的 ViewController 将被加载但不出现的主要内容,如果未能解决你的问题,请参考以下文章
Swift:关闭 viewController 1 然后呈现 viewController 2
如何从内容 ViewController 呈现 UIViewController?
在 UIWebView 之上呈现情节提要的 ViewController