0

私はいくつかのwebViewと、異なるwebView値でjavaスクリプトを呼び出すことによって小さなページと表示ページを設定する1つのviewControllerを持っています。

次のコードを使用して、結果を呼び出して表示しています。

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

送信するたびidNUmberに異なるページを取得する必要がありますが、問題は、Javaスクリプトに一度送信しidNumberた後、新しいページを表示していますが、newで再度呼び出すと、idNUmber常に同じ前のページを取得しています!もう一度やり直すと、最初のものだけが表示されます。

試しreloadましたが、機能しません...

何か案は??

4

1 に答える 1

0

わかりました。あなたがやろうとしていたように、UIWebViewを手動でそれ自体に追加する単純なViewControllerを作成しました。また、プライベートUIWebViewです。UIWebViewに渡す単純なボタンを作成しました。これはalert()毎回機能するので、ここにコード全体を示して、何が起こっているかを確認できるようにします。

.hファイル

#import <UIKit/UIKit.h>

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

@end

.mファイル

ここで、最初にjavascriptを呼び出した場所がにあるwebViewに配置されていることに注意してくださいViewDidAppear。他の先行する関数は、シミュレーターで最初に起動したときに不正な動作を引き起こします。Xcode4.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

これがある程度役に立ったことを願っています。

于 2012-09-30T02:43:36.147 に答える