How do I access IBOutlets
that have been created in another class? For example, if I have an IBOutlet
in Class A
how can I access in Class B
? If I can not access IBOutlets
from other classes what is a work-around?
@IBAction is similar to @IBOutlet , but goes the other way: @IBOutlet is a way of connecting code to storyboard layouts, and @IBAction is a way of making storyboard layouts trigger code. This method takes one parameter, called sender . It's of type UIButton because we know that's what will be calling the method.
IBAction – a special method triggered by user-interface objects. Interface Builder recognizes them. @interface Controller { IBOutlet id textField; // links to TextField UI object } - (IBAction)doAction:(id)sender; // e.g. called when button pushed.
IB stands for interface builder, as you connect objects via the interface builder .
You'll need to make your IBOutlet
a @property
and define a getter for that property via @synthesize
or you can define your own getter, here's an example of the former:
@interface ClassA : NSObject {
UIView *someView;
}
@property (nonatomic, retain) IBOutlet UIView *someView;
@end
@implementation ClassA
@synthesize someView;
...
@end
Then, in ClassB
, you can do this:
@implementation ClassB
- (void) doSomethingWithSomeView {
ClassA *a = [ClassA new];
UIView *someView = [a someView];
//do something with someView...
}
...
@end
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With