我有一个splitview应用程序。 MasterView是一个UITableViewController,详细视图是Web视图。在选择条目的主窗格中,出现另一个表视图(使用另一个tableviewcontroller创建以避免复杂性),详细视图显示与该条目相关的一些页面。这很好。
现在我想要第二个表视图也是如此,即在选择条目时,详细视图应该相应地更新。但它没有得到更新。我在第一个tableViewController类中创建了以下函数:
-(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调用此函数并调用它,但是详细信息视图没有得到更新。 在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
答案 0 :(得分:0)
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];
}
马西德威(SPLITVIEW)·H
#import "tableViewController.h"
@interface MasterViewController : UIViewController <tableViewControllerDelegate>
马西德威(SPLITVIEW)的.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];
}