swift3:如何将 xib 呈现给 viewcontroller

Posted

技术标签:

【中文标题】swift3:如何将 xib 呈现给 viewcontroller【英文标题】:swift3: How to Present xib to viewcontroller 【发布时间】:2017-01-06 05:15:20 【问题描述】:

我在另一个 xib 类上添加了 xib 作为子视图,并且无法从 xib 呈现到视图控制器(故事板控制器)。 我试过关注

1.

let screen:Screen32ViewController = Screen32ViewController()
self.view.window?.rootViewController?.present(screen!, animated: true,  completion: nil)

2.

let screen = self.storyboard?.instantiateViewController(withIdentifier: "Screen32ViewController") as? Screen32ViewController
self.present(screen!, animated: true,  completion: nil)

3.

let screen:Screen32ViewController = Screen32ViewController()
self.present(screen!, animated: true,  completion: nil)

这些都不适合我

提前致谢

【问题讨论】:

您的根视图控制器中是否嵌入了导航控制器? 是的,我有根视图控制器(导航控制器)。 问题解决了 let screen = UIStoryboard(name: "storyboard name", bundle: nil).instantiateViewController(withIdentifier: "Screen32ViewController") as? Screen32ViewController self.view.window?.rootViewController?.present(screen!, animated: true, completion: nil) 【参考方案1】:

这样试试

let screen = UIStoryboard(name: "storyboard name", bundle: nil).instantiateViewController(withIdentifier: "Screen32ViewController") as?   Screen32ViewController
self.present(screen!, animated: true,  completion: nil)

【讨论】:

它工作正常,但我在日志中出现错误“不鼓励在分离的视图控制器上显示视图控制器” 出现在 self.navigationcontroller 我是通过 self.window.rootviewcontroller.present 做到的,它在没有警告的情况下工作得很好。但无法使用相同的代码推送 让 screen = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "Screen32ViewController") as? Screen32ViewController self.navigationController?.pushViewController(screen!, animated: true) 通过使用导航控制器,您可以推送该控制器

以上是关于swift3:如何将 xib 呈现给 viewcontroller的主要内容,如果未能解决你的问题,请参考以下文章

Swift 3 - 如何在 .xib 文件上为 UIScrollView 分配委托?

Swift3.2 - 如何将 2 个类分配给同一个视图控制器?

如何在 xib 视图控制器中添加图像(swift3)[重复]

如何推送查看控制器表单呈现的 xib

使用 swift3 为 xib 文件中的按钮提供操作

swift3中的导航问题,带有没有故事板的.xib文件