Используйте следующее свойство экземпляра UIWebView :
@property(nonatomic, readonly, retain) NSURLRequest *request
Таким образом, вы можете получить текущий NSURLRequest , связанный с веб-представлением:
NSURLRequest* urlRequest = myWebView.request;
Затем вы можете получить связанный экземпляр NSURL , используя следующий метод экземпляра:
- (NSURL *)URL
Таким образом, теперь вы можете получить объект NSURL сформируйте UIWebView со следующим кодом:
NSURL* url = [myWebView.request URL];
Чтобы преобразовать это в строку, вы можете использовать либо absoluteString
, либо relativeString
методы экземпляра NSURL .Для этого примера я буду использовать absoluteString.
NSString* urlString = [[myWebView.request URL] absoluteString];
Теперь мы можем установить текст UITextField , используя простое текстовое свойство:
myTextField.text = [[myWebView.request URL] absoluteString];
Тактеперь все, что нам нужно сделать, это убедиться, что предыдущая строка кода вызывается в правильное время, чтобы обновлять текстовое поле текстом URL при каждом изменении страницы.Для этого нам нужно использовать класс, который является делегатом UIWebView (и, следовательно, соответствует протоколу UIWebViewDelegate ).Если вы не уверены в том, как использовать делегатов, я настоятельно рекомендую вам ознакомиться с шаблонами проектирования делегатов и документацией Apple Developer, так как они используются при разработке iOS.
В вашем классе UIWebViewDelegate Вам необходимо реализовать следующий метод следующим образом:
- (void)webViewDidStartLoad:(UIWebView *)webView
{
myTextField.text = [[myWebView.request URL] absoluteString];
}
Это обеспечит постоянное отображение в текстовом поле URL-адреса страницы, которая начала загружаться последней (существуют другие методы UIWebViewDelegate если вы хотите, чтобы текстовое поле обновлялось в другое время).
Надеюсь, это поможет.