Wie man Zugang Eigenschaften / Methoden in anderen Klassen
-
28-09-2019 - |
Frage
Ich habe eine RootViewController, die einige UITabBarController Eigenschaften hat:
@interface RootViewController : UIViewController<LoginViewDelegate, UITabBarControllerDelegate> {
UIBarButtonItem* loginButton;
NSUserDefaults* prefs;
UITabBarController* arTabBarController;
UITabBarController* stvTabBarController;
UITabBarController* stTabBarController;
BOOL tabBarSaved;
}
@property(nonatomic,retain) UIBarButtonItem* loginButton;
@property(nonatomic,retain) UITabBarController* arTabBarController;
@property(nonatomic,retain) UITabBarController* stvTabBarController;
@property(nonatomic,retain) UITabBarController* stTabBarController;
@property(assign) BOOL tabBarSaved;
Ich möchte in der Lage sein, diese tabbarcontrollers von einer anderen Klasse zuzugreifen.
Wie kann ich UIApplication in einer anderen Klasse für den Zugriff verwenden, um die UITabBarControllers und Schalter Tabs?
Lösung
Wenn Sie @synthesize
in Ihrer Implementierung verwenden, dann, was Sie Implementierung gibt es öffentliche Sätze von Getter und Setter.
Welche Mittel, wenn Sie hier einen Zeiger auf Ihre RootViewController bekommen können, können Sie auch alles tun, können Sie auf seine .arTabBarController
Eigenschaft wollen.
Andere Tipps
Versuchen Sie, ein Protokoll in den Root-Controller Implementierung und bestätigt, um dieses Protokoll in Ihrer Klasse. Eine weitere Möglichkeit ist die Verwendung Benachrichtigungen.
Ich hoffe, das hilft.
Überprüfen Sie auch diesen Beitrag: Rufen Sie eine Funktion aus einer anderen Klasse - Obj C
Sie können die „keyPaths“ als auch verwenden. So etwas wie:
UITabBarController *controller = [[UIApplication sharedApplication] valueForKeyPath:@"delegate.rootViewController.arTabController"];