首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UIWebViewDelegate函数未被调用

UIWebViewDelegate函数未被调用
EN

Stack Overflow用户
提问于 2012-12-13 11:56:04
回答 2查看 1.3K关注 0票数 1

.h文件:

代码语言:javascript
复制
@interface MyView: UIViewController <UIWebViewDelegate> {
    UIWebView *webView;
}

.m文件:

代码语言:javascript
复制
-(void)viewDidLoad {
    CGRect webFrame = [[UIScreen mainScreen] applicationFrame];
    webView= [[UIWebView alloc] initWithFrame:webFrame];
    webView.delegate = self;
    [self.view addSubview:webView];
    [webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://google.com"]]];
}

-(void)webViewDidStartLoad:(UIWebView *)webView {
    NSLog(@"start");    
}   

-(void)webViewDidFinishLoad:(UIWebView *)webView {
    NSLog(@"finish");   
}

-(void)dealloc {
    webView.delegate = nil;
    webView = nil;
}

在另一个MyView中创建ViewController:

代码语言:javascript
复制
MyView * myView = [[MyView alloc] init];
[self.view addSubView:myView.view];
myView = nil;

myView设置为零,因此它的委托也被销毁。

为了解决这个问题,删除了myView = nil.的句子。

谢谢你们回答我。我从你的回答中学到了。

EN

回答 2

Stack Overflow用户

发布于 2012-12-13 16:00:32

正如srikanth所说,myview是一个控制器,它需要在屏幕上被告知并保留下来,这样它就不会消失,这就是你眼前的,在你的例子中,真正的问题是(我认为)。没有人保留myView。让它成为一个成员变量,这样它就不会在给出它的视图之后直接释放。)。

代码语言:javascript
复制
@interface MyCallerWithDoesTheASI : NSObject {
    MyView *myView;
}
@end

或者把它做好,加上,就像srikanth说的,说:

代码语言:javascript
复制
[self addChildViewController:myView];
[self.view addSubview:myView.view];
[myView didMoveToParentViewController:self];

或者,例如和现在的myView模式

代码语言:javascript
复制
[self presentViewController:myView animated:NO completion:^{ [[myView dismiss...]; }
票数 1
EN

Stack Overflow用户

发布于 2012-12-13 12:08:10

MyView是一个视图控制器。在第二种情况下,你把它当作一个视图。如果要直接添加视图控制器的视图,它将不会获得调用的所有视图控制器方法。为了能够获得正确的功能,您必须做一些不同的事情。

假设您在另一个视图控制器中,然后在另一个视图控制器中,当您想要添加MyView视图控制器的视图时,请执行以下操作

代码语言:javascript
复制
[self addChildViewController:myView];
[self.view addSubview:myView.view];
[myView didMoveToParentViewController:self];

但即使在这样做之前,请使用正确的命名约定。如果要将UIViewController的子类命名为MyView,则会使自己感到困惑。把它命名为MyViewController。这样,你就能更好地记录东西。

了解更多关于针对您的问题的视图控制器包含的信息。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13859326

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档