我对UILabel
有疑问。这是两个文件ViewController
和MainClass
首先是具有label1
插座的nib文件的控制器。第二个文件是一个具有另一个标签mainLabel
的类,其中包含文本(“从MainClass中的init方法设置”)。我希望在mainLabel
中将label1
设置为ViewController
。
在MainClass的init
方法中,我为mainLabel.text
mainLabel.text = @"Set from init method in MainClass";
然后我打电话给NSLog(@"%@",mainLabel.text);
,但在控制台我有空
2011-12-14 10:31:31.048 ClassTask[1076:f803] (null)
然后我在label1 = newClass.mainLabel;
中拨打- (void)viewDidLoad
我在我的iPhone模拟器中查看label1
没有文字。
// ViewController.h
#import <UIKit/UIKit.h>
#import "MainClass.h"
@interface ViewController : UIViewController {
UILabel *label1;
MainClass *newClass;
}
@property (nonatomic, retain) IBOutlet UILabel *testLabel;
@end
// ViewController.m
#import "ViewController.h"
@implementation ViewController
@synthesize label1;
-(void) dealloc{
[label1 release];
[super dealloc];
}
#pragma mark - View lifecycle
- (void)viewDidLoad
{
[super viewDidLoad];
newClass = [MainClass new];
label1 = newClass.mainLabel;
}
@end
// MainClass.h
#import <UIKit/UIKit.h>
@interface MainClass : NSObject {
UILabel *mainLabel;
}
@property (nonatomic, retain) IBOutlet UILabel *mainLabel;
@end
// MainClass.m
#import "MainClass.h" @implementation MainClass @synthesize mainLabel;
-(id) init {
if (self = [super init]) {
mainLabel.text = @"Set from init method in MainClass";
NSLog(@"%@",mainLabel.text);
}
return self; }
-(void)dealloc {
[mainLabel release];
[super dealloc];
}
@end
答案 0 :(得分:1)
为什么不将它设为NSString,它基本上是您想要在另一个ViewController中访问的文本。
我发现的另一个错误
#import "ViewController.h"
@implementation ViewController
@synthesize label1;
-(void) dealloc{
[label1 release];
[super dealloc];
}
#pragma mark - View lifecycle
- (void)viewDidLoad
{
[super viewDidLoad];
newClass = [MainClass new];
**label1 = newClass.mainLabel.Text; // its a label, so whenever you retrieve its value it would be like labelName.Text**
}
@end
答案 1 :(得分:0)
我想如果您想将string
[在您的代码中将mainLabel.text]从一个控制器传递到另一个控制器,那么您可以使用UISharedApplication
..请点击此链接.... { {3}}