我试图在我的 viewController 中隐藏一个对象,代码从自定义类执行,但该对象为零。
第一视图控制器.h
#import <UIKit/UIKit.h>
@interface FirstViewController : UIViewController {
IBOutlet UILabel *testLabel;
}
@property (nonatomic, retain) IBOutlet UILabel *testLabel;
- (void) hideLabel;
FirstViewController.m 我合成了 testLabel,我有一个隐藏它的功能。如果我从 viewDidAppear 调用该函数,它可以工作,但我想从我的其他类调用它。当从其他类调用时,testLabel 为 nil
#import "FirstViewController.h"
#import "OtherClass.h"
@implementation FirstViewController
@synthesize testLabel;
- (void) hideLabel {
self.testLabel.hidden=YES;
NSLog(@"nil %d",(testLabel==nil)); //here I get nil 1 when called from OtherClass
}
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
OtherClass *otherClass = [[OtherClass alloc] init];
[otherClass hideThem];
//[self hideLabel]; //this works, it gets hidden
}
其他类.h
@class FirstViewController;
#import <Foundation/Foundation.h>
@interface OtherClass : NSObject {
FirstViewController *firstViewController;
}
@property (nonatomic, retain) FirstViewController *firstViewController;
-(void)hideThem;
@end
OtherClass.m 调用 FirstViewController 中的 hideLabel 函数。在我的原始项目中,(这显然是一个例子,但原始项目正在工作)我在这里下载了一些数据,我想在下载完成后隐藏我的加载标签和指示器
#import "OtherClass.h"
#import "FirstViewController.h"
@implementation OtherClass
@synthesize firstViewController;
-(void)hideThem {
firstViewController = [[FirstViewController alloc] init];
//[firstViewController.testLabel setHidden:YES]; //it doesn't work either
[firstViewController hideLabel];
}
有任何想法吗?