【发布时间】:2013-04-12 16:30:30
【问题描述】:
我使用ViewController 和Button 来表示PopOverView,在弹出视图中我加载了一个仅由代码创建的表格,而不是我的故事板中的TableController。
所以我可以使用弹出窗口,我看到一个包含从 plist 获取的内容的表格,但无法将所选行中的信息发送到 ViewController 中的 web 视图。这里是代码:
我的ViewController.m (IBAction) 生成弹出框:
- (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 发送到第一个控制器中的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];
}
但是当弹出框被关闭时,我的WebView 上什么也看不到...
任何人有任何想法来解决这个问题?
谢谢。
【问题讨论】:
-
您将 ViewController 设置为 popover 的委托
-
是的,但什么也没发生
-
RADViewController 是您的第一个视图控制器吗?不太清楚 didSelectRowAtIndexPath 中发生了什么:您创建了 detailVC,为其分配了相同的数据,然后回调...到“第一个视图控制器”?
-
没有将弹出窗口委托设置为 ViewController,但您需要 RADViewController 中的结果,因此它不起作用将委托设置为 RADViewController 然后它将起作用
-
是的 RADViewController 是 FirstViewController,我在 RADTwitterPicker 上的弹出窗口中加载。然后使用名为 tweetList 的 NSMUtableArray 从 plist 文件加载内容,并尝试将信息传递给我的 FirstViewController 中名为 twitter 的 NSMutableDictionary。
标签: iphone ios xcode uitableview uiwebview