为了使您的字符串出现在2类使它因为您已经在另一个类(Class 1)中声明了它,所以您需要使其初始化一个Class 1对象也为您的字符串赋值。例如。
ViewControllerA.h:
@interface ViewControllerA : UIViewController
@property (weak, nonatomic) NSString *test;
-(instancetype)init;
@end
ViewControllerA.m
#import "ViewControllerA.h"
@interface ViewControllerA()
@end
@implementation ViewControllerString
-(instancetype)init{
self = [super init];
if (self) {
_test = @"Testing stuff";
}
return self;
}
ViewControllerB.h:
#import "ViewControllerA.h"
@interface ViewControllerB : UIViewController
@property (strong, nonatomic) ViewControllerA *vcString;
@end
ViewControllerB.m:
#import "ViewControllerB.h"
@interface ViewControllerB()
@end
@implementation ViewControllerB
- (void)viewDidLoad {
[super viewDidLoad];
_vcString = [[ViewControllerA alloc]init];
NSLog(@"%@", self.vcString.test);
}
当您在ViewControllerA特定的初始化,这使得它如此,只要你做的事:
ViewControllerA *viewControllerAObject = [ViewControllerA alloc]init];
另一个类,你作出这样的配备了一个特定的文本字符串初始化时一个ViewControllerA对象。
您是否创建'ViewcontrollerA'实例并将其分配给'VCA'属性? – rmaddy
这是因为ViewcontrollerA * VCA属性为零。你声明了它,但你没有分配任何ViewControllerA的实例。 –
@ rmaddy-我们可以使用singleton来达到这个目的,所以无论何时我们想要一个视图控制器的实例,我们都可以[VC sharedInstance]? –