如何访问其他类中的属性/方法

时间:2010-06-18 16:08:01

标签: iphone objective-c cocoa-touch uitabbarcontroller uiapplicationdelegate

我有一个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;

我希望能够从另一个类访问这些tabbarcontrollers。

如何在另一个类中使用UIApplication来访问UITabBarControllers和切换标签?

3 个答案:

答案 0 :(得分:0)

尝试在根控制器中实现协议并确认您班级中的协议。 另一种方法是使用通知。

希望有所帮助。

另请查看此帖子:Call a function from another Class - Obj C

答案 1 :(得分:0)

如果您在实施中使用@synthesize,那么您在那里实施的是公共的getter和setter集。

这意味着,如果您可以在此处获取指向RootViewController的指针,则还可以对其.arTabBarController属性执行任何操作。

答案 2 :(得分:0)

您也可以使用“keyPaths”。 类似的东西:

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

请参阅Key-Value Coding Programming Guide