将 UIWebView 设为公开

Posted

技术标签:

【中文标题】将 UIWebView 设为公开【英文标题】:Make a UIWebView Public 【发布时间】:2011-02-05 00:31:34 【问题描述】:

我在我的视图控制器中声明了一个UIWebView 对象,我想让它在应用程序使用application:didRecieveRemoteNotification: 运行时收到通知时加载不同的页面。我无法从 appDelegate 内部访问对象。

有什么简单的方法吗?

这就是我声明我的网络视图的方式

.h

IBOutlet UIWebView *webView;
@property (nonatomic, retain) UIWebView *webView;

.m

@synthisize webView;
[webView loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:currentPath]]];

【问题讨论】:

【参考方案1】:

这不是从控制器外部显示 Web 视图的最佳方法。只需将这样的方法添加到控制器:

-(void) loadFromPath:(NSString*) path 
      [webView loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath: path]]];

并在需要时在您的应用委托中调用它。

【讨论】:

谢谢,我想这行得通!但现在它说: Method '+loadFromPath:' not found(return type defaults to 'id') 有什么想法吗? 这是我的 appDelegate 中的代码:[appViewController loadFromPath:currentPath]; 那是因为你没有声明 -(void) loadFromPath:(NSString*) path;在您查看控制器的标题中。 这不可能,因为我做到了,抱歉我没有提到。 呃,我现在似乎很清楚了。 +loadFromPath: 表示您将其声明为静态。你必须声明它 -(void) loadFromPath: (with - and not +)

以上是关于将 UIWebView 设为公开的主要内容,如果未能解决你的问题,请参考以下文章

UIwebView 链接延迟

AFNetworking 证书固定 UIWebView

在 iOS 7 中无法从 UIWebView 调用应用程序(URL 方案)

在 xib 上更改小部件的类? (将 UIWebView 更改为我自己的 UIWebView 类别)

将触摸事件从覆盖 UIView 转发到 UIWebView / 如何从代码将触摸事件发送到 uiwebview

将触摸事件从 uiview 传输到 uiwebview