我正在构建一篇阅读文章的iOS应用。在iPad我使用分割视图控制器,我想通过传递不同的URL来更新主视图控制器中的不同单元格上的详细视图控制器。
我无法将NSURL
从一个类传递到另一个类到加载详细信息视图控制器(UITableView)
ysMaster.h
@property (strong, nonatomic) NSURL *ysURL;
ysMaster.m:
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
switch (indexPath.row)
{
case 0:
[self performSegueWithIdentifier:@"Show1" sender:self];
_ysURL = [NSString stringWithFormat:@"http://you.com/234234"];
break;
case 1:
[self performSegueWithIdentifier:@"Show2" sender:self];
_ysURL=[NSURL URLWithString:@"http://goal.com/99099"];
break;
case 2:
[self performSegueWithIdentifier:@"Show3" sender:self];
_ysURL=[NSURL URLWithString:@"http://gggg.com/99099"];
break;
}
}
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(NSString *)sender{
if ([segue.identifier isEqualToString:@"Show1"])
{
ysDetail *dest = segue.destinationViewController;
dest.ysURL=sender;
}
if ([segue.identifier isEqualToString:@"Show2"])
{
ysDetail *dest = segue.destinationViewController;
dest.ysURL=sender;
[dest setURL:_ysURL];
}
if ([segue.identifier isEqualToString:@"Show3"])
{
ysDetail *dest = segue.destinationViewController;
dest.ysURL=sender;
}
}
ysDetail.h:
@property (strong, nonatomic) NSURL *url;
ysDetail.m:
NSData* data = [NSData dataWithContentsOfURL:_url];
NSLog(@"uuuuuuuuu%@",_url); //url prints null
答案 0 :(得分:0)
您可以通过self.splitViewController
从masterViewController获取SplitViewController
然后你可以将detailViewController作为
DetailViewController *detailViewController = (DetailViewController*)self.splitViewController.viewControllers[1];
detailViewController.url = yourURL;
答案 1 :(得分:0)
尝试创建ysDetail
对象,然后使用ysDetail
类创建一个方法,该类是Url
的getter。
-(void)getUrl:(NSURL)url;
并创建一个对象:
@Property ysDetail *detailClass;