Как получить доступ к свойствам / методам в других классах - PullRequest
0 голосов
/ 18 июня 2010

У меня есть RootViewController, который имеет некоторые свойства UITabBarController:

@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;

Я хотел бы получить доступ к этим контроллерам табуляции из другого класса.

Как я могу использовать UIApplication в другом классе для доступа к UITabBarControllers и переключать вкладки?

Ответы [ 3 ]

0 голосов
/ 18 июня 2010

Если вы используете @synthesize в своей реализации, то, что вы реализуете, это общедоступные наборы геттеров и сеттеров.

Это означает, что если вы можете получить указатель на ваш RootViewController здесь, вы можететакже делайте все, что вы хотите с его .arTabBarController свойством.

0 голосов
/ 19 июня 2010

Вы также можете использовать «keyPaths». Что-то вроде:

UITabBarController *controller = [[UIApplication sharedApplication] valueForKeyPath:@"delegate.rootViewController.arTabController"];

См. Руководство по программированию кодирования значения ключа

0 голосов
/ 18 июня 2010

Попробуйте реализовать протокол в корневом контроллере и подтвердите этот протокол в своем классе. Другой способ - использовать уведомления.

Надеюсь, это поможет.

Также проверьте этот пост: Вызов функции из другого класса - Obj C

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...