我知道这非常简单,但我正在重新自学基础知识并尝试解决这个问题:-)
我有一个名为 MainVC 的 ViewController,还有一个名为 ClassVC
在 ClassVC 中我有以下代码:
@interface ClassVC : UIViewController
{
NSString *mainLine;
}
@property (nonatomic, retain) NSString *mainLine;
@end
我在实现文件中有这个:
@synthesize mainLine = _mainLine;
-(NSString *)_mainLine
{
_mainLine = @"This a string from a Class";
return _mainLine;
}
现在我在想,如果我将 ClassVC#import 到 MainVC 中,我也可以像这样传输该字符串:
This code is in the viewDidLoad
_mainLabel.text = _secondClass.mainLine;
NSLog(@"%@", _secondClass.mainLine);
但这不起作用 - 所以我不能通过这种方式传递字符串吗???
最佳答案
您的属性是 mainLine,因此重写的 getter 应该是 -(NSString *)mainLine 而不是 -(NSString *)_mainLine。
-(NSString *)mainLine
{
_mainLine = @"This a string from a Class";
return _mainLine;
}
这对我有用。在VC类中:
@interface ClassVC : UIViewController
@property (nonatomic, retain) NSString *mainLine;
@end
#import "ClassVC.h"
@implementation ClassVC
-(NSString *)mainLine
{
_mainLine = @"This a string from a Class";
return _mainLine;
}
在 ViewController 中:
#import <UIKit/UIKit.h>
@class ClassVC;
@interface ViewController : UIViewController
@property (strong,nonatomic) ClassVC *secondClass;
@property (weak, nonatomic) IBOutlet UILabel *mainLabel;
@end
#import "ViewController.h"
#import "ClassVC.h"
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
ClassVC *secondClass = [[ClassVC alloc] init];
self.mainLabel.text = secondClass.mainLine;
NSLog(@"%@", secondClass.mainLine);
}
关于objective-c - 使用类将 NSString 传递到另一个 ViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12291533/