我有两个VC,我想将HomeViewController的resourceName传递给SingleWebViewController。但是,resourceName变为空。无法将NSString从一个VC传递到下一个VC
HomeViewController.m
#import "HomeViewController.h"
#import "SingleWebViewController.h"
-(void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
singleWebViewController = segue.destinationViewController;
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
selectedRow = indexPath.row;
switch (selectedRow)
{
case 0:
{
[email protected]"intro";
NSLog(@"HtmlFileName:%@" , singleWebViewController.resourceName);
[self performSegueWithIdentifier:@"toSingleWebView" sender:self];
break;
}
[tableView deselectRowAtIndexPath:indexPath animated:YES];
}
SingleWebViewController.h具有以下行
@property (nonatomic,strong)NSString *resourceName;
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
NSString *htmlFile = [[NSBundle mainBundle] pathForResource:self.resourceName ofType:@"html" inDirectory:nil] ;
NSLog(@"%@se:" , self.resourceName);
NSURL *url = [NSURL fileURLWithPath:htmlFile ];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[_webView loadRequest:request];
_webView.delegate=(id)self;
}
我也注意到,didSelectRowAtIndexPath方法是越来越prepareForSegue之前调用。这是什么原因。请建议。
你在哪里'的alloc init'你'singleWebViewController'在HomeViewController? – Popeye
您需要在'prepareForSegue'中设置'resouceName'属性。 – hgwhittle