我正在ViewController
使用Button
PopOverView
,在弹出窗口视图中我加载了一个仅由代码创建的表,而不是我的故事板中的TableController
。
所以我可以使用pop-over,我看到一个带有内容的表从plist中获取,但是无法从ViewController中的选定行发送信息到webview。这里是代码:
我的ViewController.m
(IBAction)产生popover:
- (IBAction)popover:(id)sender {
SAFE_ARC_RELEASE(popover); popover=nil;
//the controller we want to present as a popover
RADTwitterPicker *controller = [[RADTwitterPicker alloc] initWithStyle:UITableViewStylePlain];
controller.delegate = self;
popover = [[FPPopoverController alloc] initWithViewController:controller];
popover.tint = FPPopoverRedTint;
if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
{
popover.contentSize = CGSizeMake(380, 500);
}
else {
popover.contentSize = CGSizeMake(280, 300);
}
[popover presentPopoverFromView:sender];
}
在这里我说要弹出以显示RADTwitterPicker.m
,我的popover会打开,我可以从表中选择,现在我正尝试将信息从PopOver
发送到第一个控制器中的WebView
:
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
if([self.delegate respondsToSelector:@selector(selectedTableRow:)]) {
RADViewController *detailVC = [[RADViewController alloc] initWithNibName:nil bundle:nil];
detailVC.twitter = [tweetList objectAtIndex: indexPath.row];
[self.delegate selectedTableRow:indexPath.row];
}
}
并使用此方法在RADViewController.m
中阅读此内容:
- (void)tweetView {
[twitWidg addSubview: twitLoad];
[twitWidg loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:[twitter objectForKey:@"web"]]]];
[twitWidg reload];
twTimer = [NSTimer scheduledTimerWithTimeInterval:(1.0/2.0) target:self selector:@selector(twiterLoad) userInfo:nil repeats:YES];
}
- (void)viewDidLoad {
[super viewDidLoad];
[self tweetView];
}
- (void)selectedTableRow:(NSUInteger)rowNum {
NSLog(@"SELECTED ROW %d",rowNum);
[self tweetView];
[popover dismissPopoverAnimated:YES];
}
但是当popover被解雇时,我的WebView
没有看到任何内容......
任何人有任何想法解决这个问题吗?
感谢。
答案 0 :(得分:1)
重新阅读发帖后,我看到了你错过的内容。
以下是我的修复建议:
一个。修改您的委托以返回twitter对象而不是indexPath.row。这是你的新作品:
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
if([self.delegate respondsToSelector:@selector(selectedTableRow:)]) {
[self.delegate selectedTableRow:[tweetList objectAtIndex:indexPath.row]];
}
}
确保修改委托的声明以反映这一点。 (返回twitter对象而不是行号)。
B中。这是你的新人:
- (void)selectedTableRow:(WhateverTwitterClassIs *)twitter {
[popover dismissPopoverAnimated:YES];
[twitWidg addSubview: twitLoad];
[twitWidg loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:[twitter objectForKey:@"web"]]]];
[twitWidg reload];
twTimer = [NSTimer scheduledTimerWithTimeInterval:(1.0/2.0) target:self selector:@selector(twiterLoad) userInfo:nil repeats:YES];
}