如何从CocoaTouch框架访问窗口或根视图控制器?

时间:2017-03-26 14:16:59

标签: ios swift cocoa-touch

我编写了简单的CocoaTouch框架,我想在视图底部添加UIPickerView,但我的视图很小,没有具体的位置,当我添加子视图UIPickerview时,它显示但不起作用。当UIPicker在我看来它的工作时。

我想如果我在根视图上添加UIPickerView,我的问题就解决了,但是我无法访问我的框架上的根视图或窗口:

(lldb) po UIApplication.shared
<UIApplication: 0x7ff756e00e70>


(lldb) po UIApplication.shared.windows
0 elements


(lldb) po UIApplication.shared.keyWindow
nil

picker view outside of my view

我的框架在开发分支上的GitHub AZViewer上可用。 和我在示例项目提交上的问题:697eb35

1 个答案:

答案 0 :(得分:0)

我找到了。

当您在框架或viewDidLoad中的项目中调用并创建类的实例,然后您的此实例想要访问根窗口时,UIApplication.shared.keyWindow返回nil因为视图controller它还没有追加窗口。

因此,您必须在viewDidAppear上致电并使用此方法,或者点击触发,例如点按button等。