2012-09-29 2 views
0

웹보기가 있고, 작은 webView을 설정하고 다른 값으로 자바 스크립트를 호출하여 페이지를 표시하는 viewController가 있습니다. 내가 전화를하고 결과를 표시하려면 다음 코드를 사용하고자바 스크립트 호출로 페이지 새로 고침

:

NSString * js = [NSString myScript:@"%@('%@');",@"showPageById", idNumber]; 
[self.webView stringByEvaluatingJavaScriptFromString:js]; 
     [self.viewController.view addSubview:self.webView]; 

내가 diffrent 페이지를 얻어야한다,하지만 난 자바 스크립트 내가 해요 idNumber에 한 번 전송 한 후 문제가 idNUmber를 보낼 때마다 새로운 페이지를 표시하지만, 새로운 것으로 다시 호출 한 후 idNUmber 나는 항상 똑같아진다. 이전 페이지! 내가 다시 시작하면 첫 번째 것만 표시됩니다.

나는 reload 있지만 작동하지 ...

어떤 아이디어를 시도?

+0

통화 중 번호가 변경되고 있습니까? 스크립트가 다른 idNumbers를 올바르게 처리하는지 확인하십시오. 자바 스크립트를 파일에 넣고 일반 브라우저에서 실행하고 실행하여 호출간에 얻는 것을 확인하십시오. 또한 함수 호출 위치를 확인하십시오. –

+0

idNumber가 100 %로 변경되는 로그에 의해, 브라우저에서 실행될 때도 정상적으로 작동합니다 – vadim

답변

0

괜찮 았던 것처럼 UIWebView를 직접 수동으로 추가하는 간단한보기 컨트롤러를 만들었습니다. 또한 그것의 개인 UIWebView. UIWebView에 alert()을 전달하는 간단한 버튼을 만들었고 언제나 작동합니다. 그래서 여기에 전체 코드가있어서 어떻게되는지 볼 수 있습니다.

.H 파일

#import <UIKit/UIKit.h> 

@interface SOFViewController : UIViewController 
// This is linked as action thru nib. 
- (IBAction)hitMe:(UIButton *)sender; 

@end 

하는 .m 파일은 여기

내가 처음 ViewDidAppear에있는 웹보기에 자바 스크립트를 호출 할 곳의 위치를주의하십시오, 다른 위의 기능을하게됩니다 시뮬레이터에서 처음 시작할 때의 나쁜 행동. Xcode 4.3을 사용 중입니다.

#import "SOFViewController.h" 

@interface SOFViewController() 
{ 
    int idNumber; 
    UIWebView *webViewMain; 
} 

@end 

@implementation SOFViewController 


- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view, typically from a nib. 
    webViewMain = [[UIWebView alloc] initWithFrame:CGRectMake(50.0, 50.0, 50.0, 50.0)]; 
    [self.view addSubview:webViewMain]; 
} 
-(void)viewDidAppear:(BOOL)animated 
{ 
    [super viewDidAppear:animated]; 
    idNumber = idNumber + 1; 
    NSString * js = [NSString stringWithFormat:@"alert('%d');",idNumber]; 

    [webViewMain stringByEvaluatingJavaScriptFromString:js]; 
} 
- (void)viewDidUnload 
{ 
    [super viewDidUnload]; 
    // Release any retained subviews of the main view. 
} 

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
{ 
    return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown); 
} 

- (IBAction)hitMe:(UIButton *)sender { 
    idNumber = idNumber + 1; 
    NSString * js = [NSString stringWithFormat:@"alert('%d');",idNumber]; 
    [webViewMain stringByEvaluatingJavaScriptFromString:js]; 
} 
@end 

희망이 있으십니까?

관련 문제