我有一个Class:myTabController,在这个类中我有一个UITabBarController,它在这个UITabBarController中有4个子视图。
现在我在第一个子视图中,说它是tab1, 我可以调用self.parentViewController来获取UITabBarController,这个UITabBarController由myTabController拥有,但是我怎样才能获得myTabController呢?因为我想访问myTabController中的一些数据。
谢谢你, 此致
答案 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
。