如何从选项卡中的子视图获取tabController

时间:2011-08-17 20:32:42

标签: ios uitabbarcontroller tabbar

我有一个Class:myTabController,在这个类中我有一个UITabBarController,它在这个UITabBarController中有4个子视图。

现在我在第一个子视图中,说它是tab1, 我可以调用self.parentViewController来获取UITabBarController,这个UITabBarController由myTabController拥有,但是我怎样才能获得myTabController呢?因为我想访问myTabController中的一些数据。

谢谢你, 此致

1 个答案:

答案 0 :(得分:2)

从你的措辞我假设你没有子类化UITabBarController。我建议在所有四个视图控制器上都有一个属性,例如theTabController,它指向你的类的一个实例。像这样声明这个属性(在子视图中):

@class myTabController;
...
@interface MySubview : UIView {
    ...
    myTabController * theTabController;
    ...
}
...
@property (nonatomic, assign) myTabController * theTabController;

然后,在每个子视图的实现中,添加一个合成语句。在myTabController中导入.m的标头也是一个好主意,即使我们在子视图的标头中有@class。我使用@class来阻止循环导入。

#import "myTabController."
...
@implementation MySubview
@synthesize theTabController;
...
@end

myTabController开始,您需要在每个子视图上设置此属性,如下所示:

subview1.theTabController = self;
subview2.theTabController = self;
...
subviewx.theTabController = self;

最后,使用theTabController每个子视图中的self.theTabController属性子。

我还必须指出:拥有一个以小写字母开头的类名是绝对不错的。 myTabController应该是MyTabController