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 个类分配给同一个视图控制器?