我创建了一个“事件表”,其中包含事件名称,日期和位置。单击每个事件单元格后,我尝试将特定事件URL加载到Web视图中。完全迷失了。
我在ViewController.m中集成了“prepareForSegue”,并且已成功将单个url加载到代码中定义的每个表格单元格中,但我似乎无法从Parse.com加载一串URL。事件表数据的其余部分可以从Parse中正确加载。我只是在努力处理URL。
有人可以帮忙吗?
这就是我对个人网址的负载:
-(void)loadRequestFromString:(NSString*)urlString
{
NSURL *url = [NSURL URLWithString:urlString];
NSURLRequest *urlRequest = [NSURLRequest requestWithURL:url];
[self.eventWebView loadRequest:urlRequest];
}
- (void)viewDidLoad
{
[super viewDidLoad];
self.title = event.name;
[self loadRequestFromString:@"http://www.airleague.co.uk"];
}
- (void)viewDidUnload
{
[self setEventWebView:nil];
[super viewDidUnload];
// Release any retained subviews of the main view.
}
- (BOOL)shouldAutorotateToInterfaceOrientation: (UIInterfaceOrientation)interfaceOrientation
{
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
@end
我的意思是:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([segue.identifier isEqualToString:@"showEventDetail"]) {
NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
EventDetailViewController *destViewController = segue.destinationViewController;
PFObject *object = [self.objects objectAtIndex:indexPath.row];
Event *event = [[Event alloc] init];
event.name = [object objectForKey:@"name"];
event.eventURL = [object objectForKey:@"eventURL"];
destViewController.event = event;
}
}
@end
答案 0 :(得分:0)
有:
[self loadRequestFromString:NSString];
要工作,网址应该在网址中包含@“http://”(或任何协议)。
例如,它必须是“http://google.com”而不是“google.com”
Parse.com中的网址是否在字符串中有协议?
答案 1 :(得分:0)
首先,你必须检索你的对象,这些对象存储为一个字符串:
因此,在viewDidLoad中,您可以执行以下查询:
PFQuery *urlQuery = [PFQuery queryWithClassName:@"WebViewURLs"];
urlQuery.cachedPolicy = whateverPolicyYouWant;
[urlQuery selectKeys:@[@"NameOfURLColumn"]];
[urlQuery findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
if (!error) {
self.urlArray = objects;
NSLog(@"%@", self.urlArray);
//you'll notice the NSLog logs all attributes to that array, so if you want to narrow it down to a specific column you can do something like this:
self.urlArray = [objects valueForKey:@"NameOfColumn"];
}
}];
所以现在你有一个数组中的对象,你可以采取相应的行动。如果您想要更具体的答案,那么您的设置必须更加具体。我只是在猜测,因为我不是读者......但是:)
编辑从您通过电子邮件发送给我的项目中获取了一个雄猫...
寻找类似答案的其他用户的快速概要:
确保您的IBOutlet连接是单一的并附加到其各自所有者。
此外,OP没有正确划分,每次选择单元格时都会分配一个新的子类,但是没有将任何信息传递给webView视图控制器。
值得指出的是OP已将tableView子类化为Parses PFQueryTableViewController
确保正确调用目标视图控制器并将信息传递到Detail VC标题中的正确设置属性:
if ([segue.identifier isEqualToString:@"showDetailVC"]) {
NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
DetailViewController *destViewController = segue.destinationViewController;
PFObject *object = [self.objects objectAtIndex:indexPath.row];
destViewController.eventURL = [object objectForKey:@"ingredients"];
destViewController.eventName = [object objectForKey:@"name"];
}
详细介绍VC标题
@property (nonatomic, strong) IBOutlet UIWebView *webView;
@property (nonatomic, strong) NSString *eventURL;
@property (nonatomic, strong) NSString *eventName;
详细介绍VC实施:
//Load the webView in viewDidLoad:
[self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:self.eventURL]]];