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?

War es hilfreich?

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"];

Siehe Schlüsselwert Coding Programming Guide

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top