Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 将信息从popover表传递到web视图_Iphone_Ios_Xcode_Uitableview_Uiwebview - Fatal编程技术网

Iphone 将信息从popover表传递到web视图

Iphone 将信息从popover表传递到web视图,iphone,ios,xcode,uitableview,uiwebview,Iphone,Ios,Xcode,Uitableview,Uiwebview,我正在使用带有按钮的视图控制器,用于PopOverView,在Popover视图中,我加载的是仅由代码创建的表,而不是故事板中的TableController 因此,我可以使用弹出窗口,我看到一个包含从plist获取的内容的表,但无法将所选行的信息发送到ViewController中的webview。代码如下: MyViewController.m(iAction)生成popover: - (IBAction)popover:(id)sender { SAFE_ARC_RELEASE(

我正在使用带有
按钮的
视图控制器
,用于
PopOverView
,在Popover视图中,我加载的是仅由代码创建的表,而不是故事板中的
TableController

因此,我可以使用弹出窗口,我看到一个包含从plist获取的内容的表,但无法将所选行的信息发送到ViewController中的webview。代码如下:

My
ViewController.m
(iAction)生成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
发送到第一个控制器中的
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被取消时,我在我的
网络视图上看不到任何东西。。。
有人有办法解决这个问题吗


谢谢。

重新阅读您的帖子后,我看到了您错过的内容

以下是我的修复建议:

A.修改委托以返回twitter对象而不是indexath.row。这是你的新地址:

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

    if([self.delegate respondsToSelector:@selector(selectedTableRow:)]) {

        [self.delegate selectedTableRow:[tweetList objectAtIndex:indexPath.row]];
    }
}
- (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];

}
确保修改代理的声明以反映这一点。(返回twitter对象而不是行号)

B.这是您的新产品:

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

    if([self.delegate respondsToSelector:@selector(selectedTableRow:)]) {

        [self.delegate selectedTableRow:[tweetList objectAtIndex:indexPath.row]];
    }
}
- (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];

}

您正在将ViewController设置为Popover的代理是的,我做了,但什么也没发生RADViewController是您的第一个视图控制器吗?不太清楚didSelectRowAtIndexPath中发生了什么:您创建了detailVC,为其分配了相同的数据,并回调到“first view controller”?否您将popover委托设置为ViewController,但您需要RADViewController中的结果,因此它不起作用将委托设置为RADViewController,然后它将起作用是RADViewController是FirstViewController,我在RADTwitterPicker中加载pop。然后使用名为tweetList的NSMUtableArray从plist文件加载内容,并将信息传递到名为twitter的FirstViewController中的NSMutableDictionary。