webViewDidFinishLoad未触发

4
我有一个UIWebView,希望在链接加载完成后使其可见。它一开始是隐藏的,直到需要显示时才起作用。我确定可以使UIWebView再次可见,因为我在调用URL之后放置了它。但是,当UIWebView确实加载完成时,我确定webViewDidFinishLoading方法没有被调用,也不会记录该方法中的内容。可能是什么原因导致这个问题?谢谢。下面是我的代码:

.m文件:
@interface KnoxGradesViewController : UIViewController <UIWebViewDelegate> {
IBOutlet UIWebView *webView;
IBOutlet UIButton *log;
IBOutlet UISwitch *rem;
IBOutlet UIActivityIndicatorView *stat;

}
@property (nonatomic, retain) IBOutlet UIButton *about;
@property (nonatomic, retain) IBOutlet UITextField *username;
@property (nonatomic, retain) IBOutlet UITextField *password;
@property (nonatomic, retain) IBOutlet UIButton *login;
@property (nonatomic, retain) IBOutlet UILabel *warning;
@property (nonatomic, retain) IBOutlet UIWebView *webView;
@property (nonatomic, retain) IBOutlet UIButton *log;

-(IBAction)showAbout;
-(IBAction)checkFields; 
-(IBAction)logOut;

头文件.h:

- (void)webViewDidFinishLoad:(UIWebView *)mwebView {
NSLog(@"Got here!");
[mwebView setHidden:false];
 }

1
你是否将UIWebView的代理设置为KnoxGradesViewController? - Mike K
我该如何做呢?很抱歉,我还是个新手。谢谢。 - Eli
1
在接口构建器中,右键/控制点击UIWebView并拖动(保持鼠标按钮按下状态)到包含UIWebView的视图控制器(左侧面板中)。它应该会弹出一个列表,包含“委托” - 选择它。 - Mike K
仍未触发它...感谢您的帮助。 - Eli
1个回答

10

我认为你可能还没有进行委托分配。Mike所解释的是正确的,你可以在界面生成器中的对象面板中右键单击webview,并将委托链接到文件的所有者。

或者你也可以尝试通过代码实现。

在你的viewDidLoad中,你可以添加以下内容:

[webView setDelegate:self];

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接