我有一个视图和一个按钮。当按下按钮时,我提出了一个模态视图控制器,它有一个uiwebview,顶部有一个导航栏。硬编码的uiwebview显示登录提示。一旦用户进入并输入正确的登录凭证并点击键盘上的GO,我不仅需要它来验证我进入服务器,还要关闭模态视图控制器。
请注意,我输入数据的文本字段是uiwebview中加载的网站的一部分...
当我点击进入现在,网页进行身份验证,一切都很好,但我只需要一种方法来配合
[self dismissModalViewControllerAnimated:YES];
命令当他们点击GO ...有什么想法吗?
由于
修改
以下是我在loginView中实现的代码:
- (void)viewDidLoad {
[super viewDidLoad];
NSURL *url = [[NSURL alloc] initWithString: @"http://website"];
NSURLRequest *request = [[NSURLRequest alloc] initWithURL: url];
[webView loadRequest: request];
[request release];
[url release];
}
-(BOOL) textFieldShouldReturn:(UITextField *)textField{
[self dismissModalViewControllerAnimated:YES];
return YES;
}
-(IBAction) done{
[self dismissModalViewControllerAnimated:YES];
}
答案 0 :(得分:1)
首先确定成功登录时网页带您到达的网址,假设它是
http://website/logedin。实施
UIWebViewDelegate
,并检测何时向该地址发出请求:
- (BOOL)webView:(UIWebView *)wv shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
if ([[request.URL absoluteString] isEqualToString:@"http://website/logedin"]) {
[self dismissModalViewControllerAnimated:YES];
return NO;
}
return YES;
}
答案 1 :(得分:0)
您可以尝试使用以下示例代码;
@interface WebViewController : UIViewController {
}
UIWebViewDelegate有很少的委托方法,你必须在WebViewController.m中实现它(例如)。
-(void) webViewDidStartLoad:(UIWebView *)webView{
}
-(void) webViewDidFinishLoad:(UIWebView *)webView{
-(void) webViewDidFinishLoad:(UIWebView *)webView
}
-(void) webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error{
}
在此之前,您必须从Interface Builder设置UIWebView的委托。