Я разрабатываю приложение новостей, которое получает контент из RSS-ленты.Когда я нажимаю на TableViewCell, я передаю объект NSDictionary с заголовком, ссылкой и т. Д. Следующему ViewController.В ViewController я определяю NSDictionary * item;и я могу убедиться, что значения переданы правильно, установив заголовок viewcontroller следующим образом: self.title = [item objectForKey: @ "link"];заголовок показывает ссылку, которую я пытаюсь открыть в моем UIWebView.
Вот реализация моего ViewController
//
// NewsDetailViewController.m
// NewsApp2
//
// Created by Marco Soria on 12/27/10.
// Copyright 2010 __MyCompanyName__. All rights reserved.
//
#import "NewsDetailViewController.h"
@implementation NewsDetailViewController
@synthesize item, itemTitle, itemDate, itemSummary;
-(id)initWithItem:(NSDictionary *)theItem{
if(self = [super initWithNibName:@"NewsDetail" bundle:[NSBundle mainBundle]]){
self.item = theItem;
self.title = [item objectForKey:@"link"];
}
return self;
}
// The designated initializer. Override if you create the controller programmatically and want to perform customization that is not appropriate for viewDidLoad.
/*
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization.
}
return self;
}
*/
// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad {
[super viewDidLoad];
NSString *urlAddress = [self.item objectForKey:@"link"];
NSURL *baseURL = [[NSURL URLWithString: urlAddress] retain];
NSURLRequest *request = [NSURLRequest requestWithURL:baseURL];
[self.itemSummary loadHTMLString:urlAddress baseURL:nil];
[self.itemSummary loadRequest:request];
[baseURL release];
}
/*
// Override to allow orientations other than the default portrait orientation.
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
// Return YES for supported orientations.
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
*/
- (void)didReceiveMemoryWarning {
// Releases the view if it doesn't have a superview.
[super didReceiveMemoryWarning];
// Release any cached data, images, etc. that aren't in use.
}
- (void)viewDidUnload {
[super viewDidUnload];
// Release any retained subviews of the main view.
// e.g. self.myOutlet = nil;
}
- (void)dealloc {
[super dealloc];
}
@end
Теперь, когда я назначаю адрес, подобный этому @"http://somesite.com"
, UIWebView загружается очень хорошоно когда я делаю это: NSString *urlAddress = [self.item objectForKey:@"link"];
он никогда не загружается.Как я уже упоминал, я проверил, что значение [self.item objectForKey:@"link"];
является действительным URL-адресом, поскольку оно отображается в заголовке панели навигации.
, если я делаю это: [self.itemSummary loadHTMLString: urlAddress baseURL: nil];UIWebView отображает URL-адрес, еще один способ проверить, что urlAddress имеет правильный URL-адрес.
Что я делаю не так?