所有视图的共享 UIWebView
Posted
技术标签:
【中文标题】所有视图的共享 UIWebView【英文标题】:shared UIWebView for all views 【发布时间】:2011-03-07 21:42:21 【问题描述】:我想将 UIWebView 添加到应用程序中的所有视图。我没有加载和可见的 web 视图。有人可以帮助我吗?
为了让它工作,我创建了一个共享 Web 视图类。
//.h Implementation
@interface WebViewAdds : UIWebView
+ (WebViewAdds *) sharedWebView ;
@end
WebViewAdds *g_sharedWebView ;
@implementation WebViewAdds
+(WebViewAdds *) sharedWebView
if (g_sharedWebView == nil)
g_sharedWebView = [[WebViewAdds alloc] initWithFrame:CGRectMake(0, 400, 320, 60)];
[g_sharedWebView setDelegate:self];
NSString *urlAddress = @"http://www.google.com";
NSURL *url = [NSURL URLWithString:urlAddress];
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
[g_sharedWebView loadRequest:requestObj];
return g_sharedWebView;
- (id)initWithFrame:(CGRect)frame
self = [super initWithFrame:frame];
if (self)
// Initialization code.
return self;
- (void)dealloc
[super dealloc];
@end
在所有的视图控制器中,我调用的都是一样的
-(UIWebView *) testWebView
return [WebViewAdds sharedWebView] ;
-(void) viewDidLoad
[super viewDidLoad];
[self.view addSubview:self.testWebView];
【问题讨论】:
[g_sharedWebView setDelegate:self];除非您确实实现了委托方法,否则看起来没有必要。 【参考方案1】:我发现有两个问题。
首先是你并没有真正正确地做一个单例。 This SO question 里面有一些很好的信息。
第二个问题是您有一个 UIWebView 的子类,并且您将其委托设置为自身。理想情况下,委托是一个提供额外行为的单独类。
【讨论】:
以上是关于所有视图的共享 UIWebView的主要内容,如果未能解决你的问题,请参考以下文章