Как я могу отклонитьModalViewController, когда пользователь нажимает GO? - PullRequest
1 голос
/ 22 октября 2010

У меня есть вид и кнопка.Когда кнопка нажата, я представляю модальный контроллер представления, который имеет uiwebview, и панель навигации вверху.В жестко заданном uiwebview отображается приглашение для входа в систему.Когда пользователь входит и вводит правильные учетные данные для входа в систему и нажимает GO на клавиатуре, мне нужно не только аутентифицировать меня на сервере, но и отклонить контроллер модального представления.

Обратите внимание на текстполе, в которое я ввожу данные, является частью веб-сайта, загруженного в uiwebview ...

Когда я нажимаю клавишу ВВОД, веб-страница аутентифицируется, и все персиково, но мне просто нужен способ связатькоманда

[self dismissModalViewControllerAnimated:YES];

, когда они нажимают GO ... есть мысли?

Спасибо

EDIT

Вот код, который я реализую в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];
}

Ответы [ 2 ]

1 голос
/ 22 октября 2010

Сначала определите URL, по которому вы переходите на страницу при успешном входе в систему, скажем, это

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;
}
0 голосов
/ 23 октября 2010

Вы можете попробовать с приведенным ниже примером кода;


@interface WebViewController : UIViewController  {
}

UIWebViewDelegate, имеющий несколько методов делегата, вы должны реализовать его в WebViewController.m (например,).

<code>
-(void) webViewDidStartLoad:(UIWebView *)webView{
}
-(void) webViewDidFinishLoad:(UIWebView *)webView{
    -(void) webViewDidFinishLoad:(UIWebView *)webView
}
-(void) webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error{
}
Перед этим вы должны установить делегата для UIWebView из Interface Builder.
...