まず第一に、私は本当にあなたの助けに感謝します。
ええと、私は2つのビューで共通の3つのNSStringオブジェクトを使用します。そして、これらのビューはEmbedded NavigationControllerによって設定されています。つまり、SingleViewでプログラミングを開始します。
AppDelegate.hで、私は書きます
@property (weak, nonatomic) NSString *crntURL;
@property (weak, nonatomic) NSString *crntTitle;
@property (weak, nonatomic) NSString *crntHTML;
委任のため。
そして最初のビューでは、私はウェブビューを持っていて、
-(void)webViewDidFinishLoad:(UIWebView *)webView
{
AppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];
[UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
NSString *url = [[NSString alloc] initWithString:[myWebView stringByEvaluatingJavaScriptFromString:@"document.URL"]];
NSString *title = [[NSString alloc] initWithString:[myWebView stringByEvaluatingJavaScriptFromString:@"document.title"]];
NSString *html = [[NSString alloc] initWithString:[myWebView stringByEvaluatingJavaScriptFromString:@"document.all[0].outerHTML"]];
appDelegate.crntTitle = nil;
appDelegate.crntTitle = [[NSString alloc] initWithString:title];
appDelegate.crntHTML = nil;
appDelegate.crntHTML = [[NSString alloc] initWithString:html];
appDelegate.crntURL = nil;
appDelegate.crntURL = [[NSString alloc] initWithString:url];
}
ここで、NSLogを配置すると、予期されたHTMLソースコードがダンプされます。
そして、2番目のビュー(UIViewControllerのサブクラス)では、次のように記述します。
- (void)viewDidLoad
{
// Do any additional setup after loading the view.
AppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];
sourceHTML.text = appDelegate.crntHTML;
NSLog( @"%@", appDelegate.crntHTML );
NSLog( @"%@", appDelegate.crntURL );
NSLog( @"%@", appDelegate.crntTitle );
[super viewDidLoad];
}
また、crntURLとcrntTitleが値を保持している間、crntHTMLのみが予期せずnullに設定されます。
あなたはなにか考えはありますか?
前もって感謝します。
マサル