通过 UIWindow 从继承自 NSObject 的类以模态方式在整个应用程序顶部显示 UIWebView?

Posted

技术标签:

【中文标题】通过 UIWindow 从继承自 NSObject 的类以模态方式在整个应用程序顶部显示 UIWebView?【英文标题】:Showing a UIWebView modally on top of whole application through UIWindow from class inherited from NSObject? 【发布时间】:2012-04-04 14:07:20 【问题描述】:

我有一门课与社交网络相关的东西一起工作。在某些时候,它可能想要以模态方式设置 UIWebView。它可能不知道当前哪个视图控制器正在工作。我可以通过 UIWindow 显示 WebView 吗?

【问题讨论】:

【参考方案1】:

尝试做:

[[UIApplication sharedApplication].keyWindow.rootViewController 
  presentModalViewController:yourVC animated:YES]

UIApplication keyWindow Docs:

keyWindow

应用程序的关键窗口。 (只读)

@property(nonatomic, readonly) UIWindow *keyWindow

讨论

此属性在 windows 数组中保存 UIWindow 对象,即 最近发送了 makeKeyAndVisible 消息。

可用性

适用于 ios 2.0 及更高版本。

UIWindow rootViewController Docs:

rootViewController

窗口的根视图控制器。

@property(nonatomic, retain) UIViewController *rootViewController

讨论

根视图控制器提供窗口的内容视图。 将视图控制器分配给此属性(以编程方式 或使用 Interface Builder)将视图控制器的视图安装为 窗口的内容视图。如果窗口具有现有视图 层次结构,旧视图在新视图被删除之前被删除 已安装。

此属性的默认值为 nil。

可用性

适用于 iOS 4.0 及更高版本。

【讨论】:

[UIApplication keyWindow] 报错,说对象UIApplication上没有keyWindow这样的属性? 哦,是[UIApplication sharedApplication].keyWindow!谢谢 @IlyaLapan Opps。忘记像您指出的那样为 UIApplication 添加单例访问器。我更新了我的答案。很高兴我能帮上忙。

以上是关于通过 UIWindow 从继承自 NSObject 的类以模态方式在整个应用程序顶部显示 UIWebView?的主要内容,如果未能解决你的问题,请参考以下文章

我的 swift 函数的返回类型必须继承自 NSObject

实例方法 'appendInterpolation(_:formatter:)' 要求 'Any' 继承自 'NSObject'

当分离到从 NSObject 继承的自定义类时,TransitioningDelegate 不适用于 UIPresentationController

ios开发之 NSObject详解

使用 NSProxy 实现消息转发

哪些类不符合 KVO?