splitView/Objective C - 无法从第二个表视图控制器更新详细信息视图



我有一个拆分视图应用程序。MasterView 是 UITableViewController,详细信息视图是 Web 视图。在选择条目的母版窗格中,将显示另一个表视图(使用另一个表视图控制器创建以避免复杂性),并且详细信息视图显示与该条目相关的某个页面。这很多工作正常。

现在我也希望第二个表视图也是如此,即在选择一个条目时,详细信息视图应该相应地更新。但它没有得到更新。我在第一个表视图控制器类中创建了以下函数:

-(void) display:(NSString*)theUrl
{    
    NSLog(@"%@", theUrl);
    NSURL *myUrl = [NSURL URLWithString:theUrl];
    NSURLRequest *request = [NSURLRequest requestWithURL:myUrl];
    splitViewDetailViewController *detailViewController = 
    self.detailViewController;
    detailViewController.webView.scalesPageToFit = YES;
    [detailViewController.webView loadRequest:request];
}

我正在从第二个表视图控制器调用此函数,并且它被调用,但详细信息视图未更新。在secondTableViewController 的didSelectRowAtIndex方法中,我正在这样做:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{  
    NSString *urlString=@"http://www.google.com";
    NSURL *myUrl = [NSURL URLWithString:urlString];
    NSURLRequest *request = [NSURLRequest requestWithURL:myUrl];
    splitViewSecondViewController *secondDetailViewController = [[splitViewSecondViewController alloc] init];
    secondDetailViewController.detailViewController=self.detailViewController;
    [self.navigationController pushViewController:secondDetailViewController animated:YES];
    self.detailViewController.webView.scalesPageToFit = YES;
    [self.detailViewController.webView loadRequest:request];
}

但是随后出现以下运行时错误: Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[__NSCFConstantString stringByAppendingString:]: nil argument

TableViewController.h

@protocol TableViewControllerDelegate
-(void)display:(NSString*)theUrl :(NSInteger)index;
@end
id<tableViewControllerDelegate>_delegate;
@property(nonatomic,assign) id<tableViewControllerDelegate>_delegate;

TableViewController.m

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    selectedIndex = indexPath.row;
    [self.ResultTbl reloadData];
    [_delegate display:(NSString*)theUrl :selectedIndex];
}

主视图(拆分视图).h

#import "tableViewController.h"
@interface MasterViewController : UIViewController <tableViewControllerDelegate>

主视图(拆分视图).m

-(void)display:(NSString*)theUrl :(NSInteger)index
{
    NSLog(@"%@", theUrl);
    NSURL *myUrl = [NSURL URLWithString:theUrl];
    NSURLRequest *request = [NSURLRequest requestWithURL:myUrl];
    splitViewDetailViewController *detailViewController = self.detailViewController;
    detailViewController.webView.scalesPageToFit = YES;
    [detailViewController.webView loadRequest:request];
}

相关内容

最新更新