2014-12-14 2 views
0

Я пытаюсь изменить UIWebView Заголовок пользовательского агента. Я следую this SO answer.Изменение пользовательского агента uiwebview после viewdidload

Он отлично работает, когда я называю registerDefaults метод в viewDidLoad.

- (void)viewDidLoad { 
    [super viewDidLoad]; 

    NSDictionary *dictionary = [NSDictionary dictionaryWithObjectsAndKeys:@"Desktop", @"UserAgent", nil]; 
    [[NSUserDefaults standardUserDefaults] registerDefaults:dictionary]; 
} 

Но этот кусок кода не работает, когда я вызываю его после нажатия кнопки.

- (IBAction)refreshButtonClicked:(id)sender { 
    NSDictionary *dictionary = [NSDictionary dictionaryWithObjectsAndKeys:@"Desktop", @"UserAgent", nil]; 
    [[NSUserDefaults standardUserDefaults] registerDefaults:dictionary]; 
    [self.webView reload]; 
} 

Я также попытался повторно инициализировать свой webView при нажатии кнопки. Это тоже не сработало.

+0

Have вы установили ViewController в качестве делегата от вашей self.webView? –

+0

Да, WebView работает отлично! Это просто не перекрывая заголовок UserAgent с моим " Desktop ». – halilb

+0

Можете ли вы проверить, правильно ли вы реализовали onclick? Проверьте связь между View и Code – GoCrazy

ответ

-1

В вашем представленииDidLoad должен быть делегат. (В заголовке вашего ViewController вы должны добавлены, чем он реализует протокол

- (void)viewDidLoad { 
[super viewDidLoad]; 

NSDictionary *dictionary = [NSDictionary dictionaryWithObjectsAndKeys:@"Desktop", @"UserAgent", nil]; 
[[NSUserDefaults standardUserDefaults] registerDefaults:dictionary]; 
// I miss this: 
self.webView.delegate = self; 
} 


@interface yourViewController : UIViewController <UIWebViewDelegate> 
+0

Я уже сказал, что я назначаю делегат, а webview уже работает нормально кроме заголовка useragent. – halilb

Смежные вопросы