这里是一个非常菜鸟的问题。我有 2 个 VC。一个被称为SGPlayer
,另一个是SGDownloader
。基本上我想SGDownloader
从头等舱改变属性。我像这样导入SGDownloader
类:
// SGPlayer.h
#import <UIKit/UIKit.h>
#import "SGDownloader.h"
@interface SGPlayer : UIViewController
@property (nonatomic, retain) SGDownloader *downloaderClass;
SGPlayer.m
是这样的:
// SGPlayer.m
#import "SGPlayer.h"
@interface SGPlayer ()
@end
@implementation SGPlayer
@synthesize downloaderClass;
SGDownloader
然后,我在由以下触发的操作中设置类的 downloadUrl 属性UIButton
:
- (IBAction)loadURLButton:(id)sender {
[self performSegueWithIdentifier:@"loadMyData" sender:nil];
downloaderClass.downloadURL = [NSURL URLWithString:@"http://www.google.com"];
}
NSLog
在我的 URL 上给我 (null)。如果我使用prepareForSegue
方法一切都很好:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([[segue identifier] isEqualToString:@"loadMyData"])
{
SGDownloader *vc = [segue destinationViewController];
vc.downloadURL = [NSURL URLWithString:@"http://www.google.com"];
}
}
问题是我不想在这里使用prepareForSegue
。
我想我可能误解了如何在 Obj-C 中的类之间传输数据的整个概念。
编辑:
我在课堂上确实有一个综合属性SGDownloader
:
@interface SGDownloader : UIViewController
@property (nonatomic, retain) NSURL *downloadURL;
@end