如何从Objective-C中的其他类访问IBOutlet?

Bla*_*ake 5 macos xcode properties objective-c iboutlet

如何访问IBOutlets已在另一个类中创建的?举例来说,如果我有一个IBOutletClass A我怎么可以访问Class B?如果我无法IBOutlets从其他课程访问什么是解决方法?

Jac*_*kin 11

你需要制作你的IBOutleta @property并为该属性定义一个getter,@synthesize或者你可以定义你自己的getter,这里是前者的一个例子:

@interface ClassA : NSObject {
   UIView *someView;
}
@property (nonatomic, retain) IBOutlet UIView *someView;
@end

@implementation ClassA

@synthesize someView;

...

@end
Run Code Online (Sandbox Code Playgroud)

然后,ClassB你可以这样做:

@implementation ClassB 

- (void) doSomethingWithSomeView {
   ClassA *a = [ClassA new];
   UIView *someView = [a someView];
   //do something with someView...
}

...

@end
Run Code Online (Sandbox Code Playgroud)